【发布时间】:2013-05-17 20:19:47
【问题描述】:
我有一个简单的复选框列表,我正在使用for 语句将选定的值检索到一个字符串中。这必须很简单,但是当它评估它是否被选中时,一切都返回 false。
ASP 代码
<asp:CheckBoxList runat="server" ID="ckblInterests" ClientIDMode="Static" RepeatColumns="2" />
ASP.NET 代码:
string interests = "";
for (int i = 0; i < ckblInterests.Items.Count; i++)
{
if (ckblInterests.Items[i].Selected)
{
interests += ckblInterests.Items[i].Value + ", ";
}
}
}
内部的if 语句每次循环时都会评估为假。它确实正确计算了列表中的 10 个项目。我被这么简单的事情难住了。有人可以帮我确定可能导致 if 语句返回 false 的原因吗?
【问题讨论】:
-
C# 是 .Net 代码。我会改变的
-
仅供参考,您应该查看
string.Join,它将有助于在没有所有字符串连接的情况下创建分隔的内容列表,并且还可以避免您的代码具有尾随分隔符。 -
您确定
CheckBoxList中的任何项目都被选中了吗? -
您是否对 Page_Load 中的列表进行了绑定或操作?
-
您是否有代码在页面加载(或其他事件)时将复选框动态添加到列表中?如果是这样,它们可能会在每次回发时被清除并重新添加。您的页面加载应该在该部分周围有一个
if(!page.ispostback)。