处理复选框列表中的选定项目
本文关键字:项目 复选框 列表 处理 | 更新日期: 2023-09-27 18:36:53
>感谢您对以下内容的建议:我有一个名为CBL_categ的复选框列表,其中包含20多个项目。我从中选择一些项目,并将下面的这段代码块与按下按钮相关联。最后的总和始终为零。为什么?
protected void FButton_Click(object sender, EventArgs e)
{
int sum=0;
for (int i = 1; i < 20; i++)
{
if (CBL_categ.Items[i].Selected)
sum = sum + 1;
}
statusLabel.Text += " " + sum;
}
我不会使用您提供的代码。 它假设该列表中始终包含 20 个项目。 这可能会导致越界错误,并非所有项目都被计算在内,等等。 我会使用这样的东西:
protected void FButton_Click(object sender, EventArgs e)
{
int sum=0;
foreach(ListItem item in CBL_categ.Items)
{
if(item.Selected){
sum++;
}
}
statusLabel.Text += " " + sum;
}
听起来像是在实际使用此方法之前重新绑定 ListBox。 因此,例如,如果您的Page_Load方法如下所示:
protected void Page_Load(object sender, EventArgs e)
{
//This gets called before your event on postback and will erase your selected items.
BindListBox();
}
这有意义吗?
编辑:
如果您的Page_Load确实看起来像这样,请修改它,使其看起来像这样以纠正问题:
protected void Page_Load(object sender, EventArgs e)
{
if(!Page.IsPostBack){
BindListBox();
}
}
当您填充复选框列表时,请确保您也在检查页面是否未回发,即page_load选中类似 if(!Page.IsPostBack){填充您的列表}否则,您只会覆盖选择。