附上案例
<asp:GridView ID="gvApprove" runat="server" Width ="100%"
AutoGenerateColumns="False" AllowPaging="True" PagerSettings-Visible="false" PageSize="20"
CssClass="gtab" UseAccessibleHeader="true" OnRowDataBound="gv_AccountInfo_RowDataBound">
<Columns>
<asp:TemplateField HeaderText="評估選擇">
<ItemTemplate>
<asp:RadioButtonList runat="server" ID="cheRadio" AutoPostBack="True" RepeatDirection="Horizontal" RepeatLayout="Flow" Enabled="false">
<asp:ListItem Value="0">是</asp:ListItem>
<asp:ListItem Value="1">否</asp:ListItem>
</asp:RadioButtonList>
<asp:TextBox ID="txt_CheRadio" runat="server" Style="display: none" Text='<%#DataBinder.Eval(Container,"DataItem.Name") %>'></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
RadioButtonList :Text=‘<%#DataBinder.Eval(Container,“DataItem.Name”) %>’
Label:Text=‘<%#DataBinder.Eval(Container, “DataItem.ASSESS_CONTENT”)%>’
OnRowDataBound=“gv_AccountInfo_RowDataBound”
//單選框
protected void gv_AccountInfo_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
TextBox txt_CheRadio = (TextBox)e.Row.FindControl("txt_CheRadio");
RadioButtonList rbl_LastManageResult = (RadioButtonList)e.Row.FindControl("sign_mode");
rbl_LastManageResult.SelectedValue = txt_CheRadio.Text.Trim();
}
}
方法二更简单
直接一个for循环遍历赋值到选择
DataTable dtComments = obj.Get_Form_Comments(strFormCode);
gvComments.DataSource = dtComments;
gvComments.DataBind();
for (int i = 0; i < dtComments.Rows.Count; i++)
{
RadioButtonList chk_Result = (RadioButtonList)gvComments.Rows[i].FindControl("chk_Result");
chk_Result.SelectedValue = dtComments.Rows[i]["SIGN_RESULT"].ToString();
}