GridView中有一个模板列,如下:
<asp:TemplateField HeaderText="性别">
<ItemTemplate>
<asp:RadioButtonList ID="rbl_Xb" runat="server" RepeatDirection="Horizontal">
<asp:ListItem>男</asp:ListItem>
<asp:ListItem>女</asp:ListItem>
</asp:RadioButtonList>
</ItemTemplate>
</asp:TemplateField>
数据库中男女使用bit类型(即:True、False)存储的
我想用Eval或DataBind实现:
如果数据库中为True则第一个ListItem选址中 即<asp:ListItem Selected="True">男</asp:ListItem>
如果数据库z中为False则第二个ListItem选中 <asp:ListItem Selected="True">女</asp:ListItem>
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
RadioButtonList r = (RadioButtonList)e.Row.FindControl("rbl_Xb");
System.Data.DataRowView data = (System.Data.DataRowView)e.Row.DataItem;
bool qx = Convert.ToBoolean(data["qx1"]); //qx1是个bit字段
if (qx)
{
r.Items.FindByText("男").Selected = true;
}
else
{
r.Items.FindByText("女").Selected = true;
}
}
}
转载于:https://blog.51cto.com/huang1231932/553689