我有以下代码:
foreach (ListItem item in lstCreate.Items)
{
if (item.Selected)
strCreateNewVideoCategory += item.Value + ":0,";
else
strCreateNewVideoCategory += item.Value + ":1,";
}
使用这个程序,每次都是item.Selected为false,即使是从项目列表中选择一个项目。我做错了什么?
注意:ListItem使用用户控件(ascx)。
答案 0 :(得分:5)
您必须尝试使用此代码进行绑定
if (!IsPostback)
{
BindYourControl();
}
因为每次发布时都会加载并绑定控件,所以删除所选值
使用ViewState来保持。
EnableViewState = true;
答案 1 :(得分:0)
代码看起来很好。你应该尝试设置一个断点来真正看出你出错的地方。
答案 2 :(得分:0)
检查您的autopostback事件是否有页面加载和所选项目使用
listitem_selectedindexchanged()
{
}
它会为您提供所选项目的值
答案 3 :(得分:0)
反正
foreach (ListItem item in lstCreate.Items)
{
str += item.Value + item.Selected ? ":0," : ":1,";
}
或更好
str = String.Join(
",",
lstCreate.Items.Cast<ListItem>.Select(item => item.Value + item.Selected ? ":0" : ":1");