Select Single Radio Button in Gridview in Asp.Net

Introduction:

In this article we will learn how to select only one row of a GridView using RadioButtons whereas normally a RadioButton does not support selection of only one RadioButton within a row.

Background:

In ASP.Net the GridView control does not support selection of a single RadioButton that works as a group across rows. Generally as you know a RadioButton is a control that works in a group for selecting only one option. If we take RadioButtonList control it will work everywhere, which applies to a GridView also but if we use only one RadioButton control for each row in GridView it will not allow us to select only one. Try selecting a RadioButton in every row; it will allow selection of multiple rows in GridView. Here we will see how to restrict the user to select only one RadioButton within a GridView control.

For doing this task I've written some Javascript function. This function actually I got from somewhere while Google search. We will step by step follow.

Step 1:

Start new website. Put the GridView control on the Default.aspx page with RadioButton control in TemplateField like bellow.

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
            DataKeyNames="AuthId">
            <Columns>
            <asp:TemplateField ShowHeader="false">
            <ItemTemplate>
            <asp:RadioButton ID="rdbauthid" runat="server" οnclick="javascript:CheckOtherIsCheckedByGVID(this);" />
            </ItemTemplate>
            </asp:TemplateField>
            <asp:BoundField HeaderText="AUTHOR NAME" DataField="AuthName" />
            <asp:BoundField HeaderText="AUTHOR LOCATION" DataField="AuthLocation" />
            </Columns>
        </asp:GridView>

In the above you may see that in the Click event of the RadioButton control I call a Javascript function.

Step 2:

Write the script as below for checking the current selection of the RadioButton control; if more than one is selected then the other selection is removed. Other than this there are two more methods to do same task.

<script type="text/javascript">
            function CheckOtherIsCheckedByGVID(spanChk) {

                var IsChecked = spanChk.checked;

                if (IsChecked) {

                    spanChk.parentElement.parentElement.style.backgroundColor = '#228b22';

                    spanChk.parentElement.parentElement.style.color = 'white';

                }

                var CurrentRdbID = spanChk.id;

                var Chk = spanChk;

                Parent = document.getElementById("<%=GridView1.ClientID%>");

                var items = Parent.getElementsByTagName('input');

                for (i = 0; i < items.length; i++) {

                    if (items[i].id != CurrentRdbID && items[i].type == "radio") {

                        if (items[i].checked) {

                            items[i].checked = false;

                            items[i].parentElement.parentElement.style.backgroundColor = 'white'

                            items[i].parentElement.parentElement.style.color = 'black';
                        }

                    }

                }

            }
</script>

Step 3:

Bind your GridView in aspx.cs page and run the application.

Conclusion:

In this way we can restrict the user to select only one option via RadioButton in GridView.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值