【问题标题】:Dynamic Checkboxlist in repeater, ASP.NET转发器中的动态复选框列表,ASP.NET
【发布时间】:2016-01-28 15:03:49
【问题描述】:

我在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' 有一个无效的 SelectedValue,因为它不存在于项目列表中。

【问题讨论】:

    标签: c# asp.net repeater checkboxlist


    【解决方案1】:

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

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

    chk.SelectedValue = "1";
    

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

    当然你也可以使用SelectedIndex:

    chk.SelectedIndex = 0;
    

    【讨论】:

    • 谢谢,我明白你的意思。错误已修复。
    猜你喜欢
    • 2011-09-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-29
    • 2012-04-28
    • 1970-01-01
    • 1970-01-01
    • 2011-02-18
    相关资源
    最近更新 更多