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

Dynamic Checkboxlist in repeater, ASP.NET

我在 Repeater 中有一个 CheckBoxList,我的代码来自这里 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: 'chklWorkType' has a SelectedValue which is invalid because it does not exist in the list of items.

DataValueField gets or sets the field of the data source that provides the value of each list item. So normally the name of a column or something like that. But you are using this name as SelectedValue 不存在,因为你没有分配一个,所以它是 String.Empty.

如果你想选择第一个项目,你可以使用这个:

chk.SelectedValue = "1";

这是第一个 ListItem(new ListItem("nem 1", "1")).

的值

当然你也可以使用 SelectedIndex:

chk.SelectedIndex = 0;