在服务器端绑定一个asp.net复选框

时间:2017-10-17 16:38:24

标签: c# asp.net checkbox binding datalist

我有一个搜索功能,其中复选框应该根据这些复选框是多个数据来检查或取消选中,我在服务器端这样做,我有代码

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

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

我收到错误:

  

对象引用空指针异常

请帮忙!

1 个答案:

答案 0 :(得分:0)

方法1:

您应该尝试ItemDataBound事件,添加一个Label并将其设置为可见的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">

方法2:

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

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