【问题标题】: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 %>'