Asp.net radiobuttonlist selectedindexchanged事件触发意外
我有一个Asp.net radiobuttonlist selectedindexchanged事件触发意外,asp.net,events,viewstate,init,radiobuttonlist,Asp.net,Events,Viewstate,Init,Radiobuttonlist,我有一个radiobuttonlist我在codebehid private void DisplayPrivacyTerms(long ImageId) { if (ImageryDataAccess.GetImagePrivacyTerm(ImageId).ToLower() == "me only") { RadioButtonListPrivacy.Items[0].Selected = true; } if (ImageryDataAcc
radiobuttonlist
我在codebehid
private void DisplayPrivacyTerms(long ImageId)
{
if (ImageryDataAccess.GetImagePrivacyTerm(ImageId).ToLower() == "me only")
{
RadioButtonListPrivacy.Items[0].Selected = true;
}
if (ImageryDataAccess.GetImagePrivacyTerm(ImageId).ToLower() == "friends")
{
RadioButtonListPrivacy.Items[1].Selected = true;
}
if (ImageryDataAccess.GetImagePrivacyTerm(ImageId).ToLower() == "public")
{
RadioButtonListPrivacy.Items[2].Selected = true;
}
}
当以上述方式更改所选项目时,随后postback
到服务器会触发selectedindexchanged
事件。特别是我有
列表视图
,它显示图像按钮
。当我在列表视图中单击imagebutton
时,如果所选项目已更改,则稍后单击imagebutton将触发RadioButton列表的SelectedInterchanged
事件。
为什么会发生这种情况?我不认为这会触发这一事件。我不完全确定您想要实现什么。但是您似乎需要处理RadioButtonList
OnSelectedIndexChanged
事件的一些逻辑
首先在RadioButtonList
然后在OnSelectedIndexChanged
事件中,编写逻辑
protected void RadioButtonListPrivacy_SelectedIndexChanged(object sender, System.EventArgs e)
{
// your logic here
// so basically when you click on any of the items in your radiobuttonlist,
// this event will fire and you can write your logic based on it
}
实际上,问题是我在aspx页面中以声明方式初始化了这些项。我将有问题的函数改为如下代码
private void DisplayPrivacyTerms(long ImageId)
{
RadioButtonListPrivacy.Items.Clear();
ListItem itemMe= new ListItem("Me Only", "1");
RadioButtonListPrivacy.Items.Add(itemMe);
ListItem itemMates = new ListItem("Subject Mates", "2");
RadioButtonListPrivacy.Items.Add(itemMates);
ListItem itemPublic = new ListItem("Public", "3");
RadioButtonListPrivacy.Items.Add(itemPublic);
if (ImageryDataAccess.GetImagePrivacyTerm(ImageId).ToLower() == "me only")
{
RadioButtonListPrivacy.Items[0].Selected = true;
}
if (ImageryDataAccess.GetImagePrivacyTerm(ImageId).ToLower() == "subject mates")
{
RadioButtonListPrivacy.Items[1].Selected = true;
}
if (ImageryDataAccess.GetImagePrivacyTerm(ImageId).ToLower() == "public")
{
RadioButtonListPrivacy.Items[2].Selected = true;
}
}
我清除了列表,然后添加了新条目,这样就清除了仅更改Select=true属性时出现的viewstate问题:) 这个问题太含糊而无法理解?请说得具体一点。实际上,问题是以编程方式更改所选项目。如何有效地更改radiobuttonlist.items[]所选属性?当它触发selectedindexchanged事件时?当我更改selectedindexchanged属性时,然后单击其他按钮,POSTSBACK TO SERVER会触发此事件…请检查上面我自己的答案,并确切地告诉我viewstate是如何完成此操作的?我仍然不确定到底出了什么问题