Apr 8, 2010

Single Selection RadioButton on GridView in single row

<asp:GridView ID="gvfreeusers" runat="server" AllowPaging="True" AllowSorting="True"
                                AutoGenerateColumns="False" CellPadding="4" EmptyDataText="No Records Found"
                                ForeColor="#333333" GridLines="None" Width="80%" OnPageIndexChanging="gvfreeusers_PageIndexChanging"
                                OnSorting="gvfreeusers_Sorting">
                                <AlternatingRowStyle BackColor="White" />
                                <Columns>
                                    <asp:TemplateField HeaderText="Mobile" SortExpression="mobileno">
                                        <ItemTemplate>
                                            <asp:Label ID="lblmb" runat="server" Text='<%#Eval("mobileno")  %>'></asp:Label></ItemTemplate>
                                        <HeaderStyle HorizontalAlign="Center" />
                                        <ItemStyle HorizontalAlign="Center" />
                                    </asp:TemplateField>
                                    <asp:TemplateField HeaderText="UserName" SortExpression="username">
                                        <ItemTemplate>
                                            <asp:Label ID="lblname" runat="server" Text='<%#Eval("username")  %>'></asp:Label></ItemTemplate>
                                        <HeaderStyle HorizontalAlign="Center" />
                                        <ItemStyle HorizontalAlign="Center" />
                                    </asp:TemplateField>
                                    <asp:TemplateField HeaderText="DateOfBirth" SortExpression="dob">
                                        <ItemTemplate>
                                            <asp:Label ID="lblgrp2" runat="server" Text='<%#Eval("dob")  %>'></asp:Label></ItemTemplate>
                                        <HeaderStyle HorizontalAlign="Center" />
                                        <ItemStyle HorizontalAlign="Center" />
                                    </asp:TemplateField>
                                    <asp:TemplateField HeaderText="Address" SortExpression="address">
                                        <ItemTemplate>
                                            <asp:Label ID="lblgrp3" runat="server" Text='<%#Eval("address")  %>'></asp:Label></ItemTemplate>
                                        <HeaderStyle HorizontalAlign="Center" />
                                        <ItemStyle HorizontalAlign="Center" />
                                    </asp:TemplateField>
                                    <asp:TemplateField HeaderText="Approve">
                                        <ItemTemplate>
                                            <asp:RadioButton ID="rbtnapprove" runat="server" onClick="FlipRadioSelection(this)" EnableViewState="true" AutoPostBack="true" OnCheckedChanged="SelectOnlyOne"  />
                                        </ItemTemplate>
                                        <HeaderStyle HorizontalAlign="Center" />
                                        <ItemStyle HorizontalAlign="Center" VerticalAlign="Middle" />
                                    </asp:TemplateField>
                                    <asp:TemplateField HeaderText="Suspended">
                                        <ItemTemplate>
                                            <asp:RadioButton ID="rbtnsuspend" runat="server"  onClick="FlipRadioSelection(this)" EnableViewState="true" AutoPostBack="true" OnCheckedChanged="SelectOnlyOne" />
                                        </ItemTemplate>
                                        <HeaderStyle HorizontalAlign="Center" />
                                        <ItemStyle HorizontalAlign="Center" VerticalAlign="Middle" />
                                    </asp:TemplateField>
                                    <asp:TemplateField HeaderText="Block ">
                                        <ItemTemplate>
                                            <asp:RadioButton ID="rbtnblock" runat="server" onClick="FlipRadioSelection(this)"
                                                EnableViewState="true" AutoPostBack="true" OnCheckedChanged="SelectOnlyOne" />
                                        </ItemTemplate>
                                        <HeaderStyle HorizontalAlign="Center" />
                                        <ItemStyle HorizontalAlign="Center" VerticalAlign="Middle" />
                                    </asp:TemplateField>
                                </Columns>
                                <FooterStyle BackColor="#990000" Font-Bold="True" ForeColor="White" />
                                <HeaderStyle BackColor="#990000" Font-Bold="True" ForeColor="White" />
                                <PagerStyle BackColor="#FFCC66" ForeColor="#333333" HorizontalAlign="Center" />
                                <RowStyle BackColor="#FFFBD6" ForeColor="#333333" />
                                <SelectedRowStyle BackColor="#FFCC66" Font-Bold="True" ForeColor="Navy" />
                            </asp:GridView>

     public void SelectOnlyOne(object sender, EventArgs e)
        {
            RadioButton rbb = new RadioButton();
            RadioButton rbs = new RadioButton();
            RadioButton rba = new RadioButton();
            foreach (GridViewRow i in gvfreeusers.Rows)
            {

                rbb = (RadioButton)(i.FindControl("rbtnblock"));
              
                rbs = (RadioButton)(i.FindControl("rbtnsuspend"));
                rba = (RadioButton)(i.FindControl("rbtnapprove"));
                if (rba.Checked == true && rbs.Checked == false && rbb.Checked == false)
                {
                    rbs.Checked = false;
                    rbb.Checked = false;
                    rba.Checked = true;
                }
                else
                {
                    rba.Checked = false;

                }
                if (rbs.Checked == true && rba.Checked == false && rbb.Checked == false)
                {
                    rbb.Checked = false;
                    rba.Checked = false;
                    rbs.Checked = true;
                }
                else
                {
                    rbs.Checked = false;
                }

                if (rbb.Checked == true && rbs.Checked == false && rba.Checked == false)
                {
                    rbs.Checked = false;
                    rba.Checked = false;
                    rbb.Checked = true;
                }
                else
                {
                    rbb.Checked = false;

                }

             
             
              
            }
        }

this is only forward method if u use simple trick you can get
forward and back word and jumble selection

  <asp:TemplateField HeaderText="Approve">
                                        <ItemTemplate>
                                            <asp:RadioButton ID="rbtnapprove" runat="server" onClick="FlipRadioSelection(this)"
                                                EnableViewState="true" AutoPostBack="true" GroupName="r1" />
                                        </ItemTemplate>
                                        <HeaderStyle HorizontalAlign="Center" />
                                        <ItemStyle HorizontalAlign="Center" VerticalAlign="Middle" />
                                    </asp:TemplateField>
                                    <asp:TemplateField HeaderText="Suspended">
                                        <ItemTemplate>
                                            <asp:RadioButton ID="rbtnsuspend" runat="server" onClick="FlipRadioSelection(this)"
                                                EnableViewState="true" AutoPostBack="true" GroupName="r1" />
                                        </ItemTemplate>
                                        <HeaderStyle HorizontalAlign="Center" />
                                        <ItemStyle HorizontalAlign="Center" VerticalAlign="Middle" />
                                    </asp:TemplateField>
                                    <asp:TemplateField HeaderText="Block ">
                                        <ItemTemplate>
                                            <asp:RadioButton ID="rbtnblock" runat="server" onClick="FlipRadioSelection(this)"
                                                EnableViewState="true" AutoPostBack="true" GroupName="r1" />
                                        </ItemTemplate>
                                        <HeaderStyle HorizontalAlign="Center" />
                                        <ItemStyle HorizontalAlign="Center" VerticalAlign="Middle" />
                                    </asp:TemplateField>

groupname is key property with this property only single selection can be done for each row

No comments:

Post a Comment