ASP.NET 转发器中的动态复选框列表

本文关键字:动态 复选框 列表 NET 转发器 ASP | 更新日期: 2023-09-27 18:32:21

我在Repeater中有一个CheckBoxList,我拥有的代码来自这里 转发器中的动态下拉列表,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:"chklWorkType"有一个无效的SelectedValue,因为它不存在于项目列表中。

ASP.NET 转发器中的动态复选框列表

DataValueField获取或设置提供每个列表项值的数据源的字段。所以通常是列的名称或类似的东西。但是你用这个名字作为不存在SelectedValue,因为你没有断言一个,所以它String.Empty.

如果要选择第一项,可以使用此选项:

chk.SelectedValue = "1";

这就是第一个ListItemnew ListItem("nem 1", "1"))的值。

当然,您也可以使用SelectedIndex

chk.SelectedIndex = 0;