ラジオボタンリストで非常に奇妙な問題が発生しました。数回クリックしてもSelectedIndexChangedイベントが発生しないようで、ポストバック後も同じ値のままです。
<asp:RadioButtonList runat="server" ID="rblShowRecords" AutoPostBack="true"
OnSelectedIndexChanged="rblShowRecords_SelectedIndexChanged" RepeatDirection="Horizontal">
<asp:ListItem >Show Active/Completed</asp:ListItem>
<asp:ListItem >Show Active</asp:ListItem>
<asp:ListItem >Show Completed</asp:ListItem>
</asp:RadioButtonList>
イベントメソッドは次のとおりです。
protected void rblShowRecords_SelectedIndexChanged(object sender, EventArgs e)
{
switch (rblShowRecords.SelectedItem.Text)
{
case "Show Active/Completed":
CEDatabaseSource.SelectCommand = ConfigurationManager.AppSettings["SelectAllRecords"].ToString();//"SELECT * FROM [CERecord] ORDER BY [Priority]";
break;
case "Show Active":
CEDatabaseSource.SelectCommand = ConfigurationManager.AppSettings["SelectActiveRecords"].ToString();
break;
case "Show Completed":
CEDatabaseSource.SelectCommand = ConfigurationManager.AppSettings["SelectCompletedRecords"].ToString();
break;
default:
break;
}
CEDatabaseSource.DataBind(); //Commit the changes to the data source.
gvRecordList.DataBind(); //Update the GridView
rblShowRecords.SelectedItem.Value = CEDatabaseSource.SelectCommand; //Update the value of the selected radio button with the selected SELECT command.
}
なぜ正確に3回しか機能しないのかわかりませんが、その後は上記の方法にはなりません。
同じことをドロップダウンリストで試してみると、3回も機能し、次のエラーが発生します。
Invalid postback or callback argument. Event validation is enabled using <pages enableEventValidation="true"/> in configuration or <%@ Page EnableEventValidation="true" %> in a page. For security purposes, this feature verifies that arguments to postback or callback events originate from the server control that originally rendered them. If the data is valid and expected, use the ClientScriptManager.RegisterForEventValidation method in order to register the postback or callback data for validation