<asp:GridView ID="GridView1" runat="server" AllowPaging="True" AutoGenerateColumns="False"
                DataKeyNames="ID" OnPageIndexChanging="GridView1_PageIndexChanging" OnRowDataBound="GridView1_RowDataBound" OnRowEditing="GridView1_RowEditing" OnSelectedIndexChanging="GridView1_SelectedIndexChanging" OnRowCancelingEdit="GridView1_RowCancelingEdit" OnRowUpdating="GridView1_RowUpdating" OnRowDeleting="GridView1_RowDeleting" OnDataBound="GridView1_DataBound">
                <PagerSettings NextPageText="&amp;gt;下一頁" PageButtonCount="7" PreviousPageText="&amp;lt;上一頁" />
                <FooterStyle Font-Size="XX-Small" />
                <Columns>
                    <asp:TemplateField HeaderText="性別">
                        <EditItemTemplate>
                            <asp:RadioButtonList ID="RadioButtonList1" RepeatDirection="Horizontal" runat="server">
                                <asp:ListItem Value="1">男</asp:ListItem>
                                <asp:ListItem Value="0">女</asp:ListItem>
                            </asp:RadioButtonList>
                        </EditItemTemplate>
                        <ItemTemplate>
                            <asp:HiddenField ID="hfSex" Value='<%# Bind("sex") %>' runat="server" />
                            <asp:Label ID="lbSex" Text='<%# Bind("sex") %>' runat="server"></asp:Label>
                        </ItemTemplate>
                        <ControlStyle Width="30px" />
                    </asp:TemplateField>
</asp:GridView>在sql中,sex字段类型为bit,1为女性,0为男性。请帮忙

解决方案 »

  1.   

    DataItemBound事件里面编写代码不就可以了?
      

  2.   

    先到用findcontrol()把在gridview里面的radiobuttonlist找到,然后通过findValue与绑定的数据相比。其实绑定方法跟一般的用法一样,关键就是要用findcontrol()找到gridview里面的radiobuttonlist这控件。
      

  3.   

    这个如果是个显示列表的话
    在sql中使用 case 不就可以了么case '字段' when (字段= 值1) then 结果
                 when (字段=值2) then 结果
                 else 结果
                 end
      

  4.   


            protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
            {
                RadioButtonList rd = (RadioButtonList)e.Row.FindControl("RadioButtonList1");
                HiddenField hf = (HiddenField)e.Row.FindControl("hfSex");            if (hf.Value == "1")
                    rd.Items[0].Selected = true;
                else
                    rd.Items[1].Selected = true;        } 
      

  5.   

    事实上,我在发贴之前就用过4楼的方法,
    但是当我进入编辑状态,RadioButtonList1显示出来后,它并没有选中任何一个值,全部处于未选中状态
      

  6.   

    还有,SQL出来的bit类型要么是"True",要么是"False"
      

  7.   


    <asp:GridView ID="GridView1" runat="server" AllowPaging="True" AutoGenerateColumns="False"
                    DataKeyNames="ID" OnPageIndexChanging="GridView1_PageIndexChanging" OnRowDataBound="GridView1_RowDataBound" OnRowEditing="GridView1_RowEditing" OnSelectedIndexChanging="GridView1_SelectedIndexChanging" OnRowCancelingEdit="GridView1_RowCancelingEdit" OnRowUpdating="GridView1_RowUpdating" OnRowDeleting="GridView1_RowDeleting" OnDataBound="GridView1_DataBound">
                    <PagerSettings NextPageText="&amp;gt;下一頁" PageButtonCount="7" PreviousPageText="&amp;lt;上一頁" />
                    <FooterStyle Font-Size="XX-Small" />
                    <Columns>
                        <asp:TemplateField HeaderText="性別">
                            <EditItemTemplate>
                                <asp:RadioButtonList ID="RadioButtonList1" Text='<%# Bind("sex") %>' RepeatDirection="Horizontal" runat="server">
                                    <asp:ListItem Value="True">男</asp:ListItem>
                                    <asp:ListItem Value="False">女</asp:ListItem>
                                </asp:RadioButtonList>
                            </EditItemTemplate>

                            <ItemTemplate>
                                <asp:HiddenField ID="hfSex" Value='<%# Bind("sex") %>' runat="server" />
                                <asp:Label ID="lbSex" Text='<%# Bind("sex") %>' runat="server"></asp:Label>
                            </ItemTemplate>
                            <ControlStyle Width="30px" />
                        </asp:TemplateField>
    </asp:GridView>
    不用设置RowDataBound事件。
    (本从即是楼主)