[英]Check box list OnSelectedIndexChanged event is firing as many times as the items are their
我的HTML
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<div id="pnlItList" runat="server">
<asp:CheckBoxList ID="chkIt" runat="server" OnSelectedIndexChanged="chkIt_SelectedIndexChanged" AutoPostBack="true"></asp:CheckBoxList>
</div>
</ContentTemplate>
</asp:UpdatePanel>
我的代碼落后
protected void chkIt_SelectedIndexChanged(object sender, EventArgs e)
{
var d=string.Empty;
System.Web.UI.WebControls.CheckBoxList lBox = (System.Web.UI.WebControls.CheckBoxList)sender;
foreach (System.Web.UI.WebControls.ListItem data in lBox.Items)
{
if (data.Selected)
{
d += data.Value;
}
}
}
這里的問題是,事件觸發了很多次,復選框中有多少個復選框項目。 例如,我有兩個復選框,並且選擇了1個復選框,則事件觸發兩次,並且兩次添加相同的值。 如果有三個復選框,那么事件將觸發三遍,如果我選擇1個復選框,則將相同的值添加三遍。
這是一個工作示例,您可以嘗試以下操作:
這是HTML代碼:
<asp:CheckBoxList id="check1" AutoPostBack="True"
TextAlign="Right" OnSelectedIndexChanged="check1_SelectedIndexChanged"
runat="server">
<asp:ListItem>Item 1</asp:ListItem>
<asp:ListItem>Item 2</asp:ListItem>
<asp:ListItem>Item 3</asp:ListItem>
<asp:ListItem>Item 4</asp:ListItem>
<asp:ListItem>Item 5</asp:ListItem>
<asp:ListItem>Item 6</asp:ListItem>
</asp:CheckBoxList>
<br>
<asp:label id="mess" runat="server"/>
這是C#代碼:
protected void check1_SelectedIndexChanged(object sender, EventArgs e)
{
mess.Text = "Selected Item(s):";
for (int i = 0; i < check1.Items.Count; i++)
{
if (check1.Items[i].Selected == true)
{
mess.Text += check1.Items[i].Text;
}
}
}
或在代碼后面使用編輯:
protected void chkIt_SelectedIndexChanged(object sender, EventArgs e)
{
var d=string.Empty;
for (int i = 0; i < chkIt.Items.Count; i++)
{
if (chkIt.Items[i].Selected == true)
{
d += chkIt.Items[i].Text;
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.