我有一个搜索功能,其中复选框应该根据这些复选框是多个的数据来选中或取消选中,我在服务器端这样做,我有的是代码
<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:
您应该尝试 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;
}
}
注意:不要忘记在数据列表中添加OnItemDataBound
事件。
<asp:DataList ID="DataList1" OnItemDataBound="DataList1_ItemDataBound" runat="server">
方法2:
您可以在选中的复选框中使用三元运算符,如下所示:
Checked='<% # (Eval("blueFlag").ToString() == "Y") ? true : false %>'