转发器中的动态Checkboxlist,ASP.NET

时间:2016-01-28 15:03:50

标签: c# asp.net repeater checkboxlist

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,因为它在项目列表中不存在。

1 个答案:

答案 0 :(得分:2)

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

如果您想要选择第一个项目,可以使用此选项:

chk.SelectedValue = "1";

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

当然您也可以使用SelectedIndex

chk.SelectedIndex = 0;