【问题标题】:binding an asp.net checkbox on serverside在服务器端绑定一个 asp.net 复选框
【发布时间】:2018-03-29 10:29:01
【问题描述】:

我有一个搜索功能,根据这些复选框的数据,复选框应该是选中还是未选中,我在服务器端执行这里我有代码

<asp:CheckBox ID="AApBlue" runat="server"Checked='<%#GetBoolean(Eval("blueFlag").ToString()) %>'/>Blue

.cs file 
protected Boolean GetBoolean(string val)
{
    return val == "Y" ? true : false;
}

我收到一个错误:

对象引用空指针异常

请帮忙!

【问题讨论】:

    标签: c# asp.net checkbox binding datalist


    【解决方案1】:

    方法一:

    您应该尝试 ItemDataBound 事件,添加标签并将其设置为可见 false:

    <asp:CheckBox ID="AApBlue" runat="server" />
    <asp:Label ID="Label1" Text='<% # Eval("blueFlag") %>' Visible="false" runat="server" >
    </asp:Label>
    
    .CS File:
    protected void DataList1_ItemDataBound(object sender, DataListItemEventArgs e)
    {
        if (e.Item.ItemType == ListItemType.Item || 
            e.Item.ItemType == ListItemType.AlternatingItem)
        {
            CheckBox chk = e.Item.FindControl("AApBlue") as CheckBox;
            Label lbl = e.Item.FindControl("Label1") as Label;
    
            chk.Checked = (lbl.Text == "Y") ? true : false;
        }
    }
    

    注意:不要忘记在DataList中添加OnItemDataBound事件。

    <asp:DataList ID="DataList1" OnItemDataBound="DataList1_ItemDataBound" runat="server">
    

    方法二:

    您可以在复选框中使用三元运算符:

    Checked='<% # (Eval("blueFlag").ToString() == "Y") ? true : false %>' 
    

    【讨论】:

      猜你喜欢
      • 2020-01-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-26
      • 2015-07-03
      • 2017-01-24
      • 1970-01-01
      相关资源
      最近更新 更多