Tôi có ứng dụng web sử dụng GridView. Trong GridView tôi sử dụng RadioButtonList, RadioButtonList này có hai mục Yes và No. Tôi muốn chọn một mục từ hai phụ thuộc vào giá trị tôi nhận được từ bộ dữ liệu tại thời điểm binding. Tên cột của tôi là is_selected và nó trả về True thì trong RadioButtonList Yes sẽ được Check. Đây là mã
<asp:RadioButtonList ID="rbd_join" AutoPostBack="true" runat="server"
RepeatDirection="Horizontal" BorderStyle="None" BorderWidth="0px" BorderColor="Transparent"
DataValueField="is_selected">
<asp:ListItem Text="Yes" Value="1" ></asp:ListItem>
<asp:ListItem Text="No" Value="0"></asp:ListItem>
</asp:RadioButtonList>
Bạn cần sử dụng sự kiện RowDataBound trên GridView:
protected void gv_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
var radioList = e.Row.FindControl("rbd_join") as RadioButtonList;
var myObject = e.Row.DataItem as DataRowView;
bool isSelected = bool.Parse(myObject["is_selected"].ToString());
radioList.SelectedValue = isSelected ? "1" : "0";
}
}