CheckBoxList
中有一个Repeater
,而我的代码来自Dynamic dropdownlist in repeater, ASP.NET。
如果这样做:
<asp:CheckBoxList ID="chklWorkType" runat="server" OnDataBinding="chklWorkType_DataBinding"></asp:CheckBoxList>
protected void chklWorkType_DataBinding(object sender, System.EventArgs e)
{
CheckBoxList chk = (CheckBoxList)(sender);
chk.Items.Add(new ListItem("nem 1", "1"));
chk.Items.Add(new ListItem("num 2", "2"));
chk.SelectedValue = chk.DataValueField;
}
这是我的错误消息:
System.ArgumentOutOfRangeException:&#39; chklWorkType&#39;具有一个无效的SelectedValue,因为它在项目列表中不存在。
答案 0 :(得分:2)
DataValueField
获取或设置提供每个列表项值的数据源字段。通常是列的名称或类似的东西。但是您使用的此名称为SelectedValue
,因为您没有分配,因此它不存在,所以它是String.Empty
。
如果您想要选择第一个项目,可以使用此选项:
chk.SelectedValue = "1";
这是第一个ListItem
(new ListItem("nem 1", "1")
)的价值。
当然您也可以使用SelectedIndex
:
chk.SelectedIndex = 0;