Microsoft Developer
Microsoft Developer

Reputation: 5459

How to set radio button Id property based on database value?

I have grid view which contains five radio buttons per row. Out of these five only one can be checked at a time. To achieve this I tried to keep Id property of radio button corresponding to database value. But it gives me an error in Id field. .Net does not allow to use eval function in ID property. The rows will depend on number of records in database. I want to keep 5 radio button in database and out of these five, only one can be checked. How to achieve this task? //My code of .aspx page is as below.

 <%@ Page Title="Applicant Rating Form" Language="C#" MasterPageFile="~/Interviewer/interviewerMasterPage.master" AutoEventWireup="true" CodeFile="AppRatingForm.aspx.cs" Inherits="Interviewer_AppRatingForm" %>

 <asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">
 </asp:Content>
 <asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
<table cellpadding="2" width="100%">
    <tr>
        <td colspan="2">
            &nbsp;</td>
    </tr>
    <tr>
        <td align="center" class="tdtitle" colspan="2">
            Interview Rating Form</td>
    </tr>
    <tr>
        <td colspan="2">
            &nbsp;</td>
    </tr>
    <tr>
        <td width="25%">
            Name of Applicant</td>
        <td>
            <asp:Label ID="nameLbl" runat="server" Text="Label"></asp:Label>
        </td>
    </tr>
    <tr>
        <td>
            Post Applied For</td>
        <td>
            &nbsp;</td>
    </tr>
    <tr>
        <td>
            Department</td>
        <td>
            &nbsp;</td>
    </tr>
    <tr>
        <td colspan="2">
            &nbsp;</td>
    </tr>
    <tr>
        <td align="center" class="tdtitle" colspan="2">
            Assessment</td>
    </tr>
    <tr>
        <td align="left" colspan="2">
            <asp:GridView ID="assesmentGrid" runat="server" AutoGenerateColumns="False" 
                onpageindexchanging="assesmentGrid_PageIndexChanging">
                <Columns>
                    <asp:BoundField HeaderText="ID" DataField="SecId"/>
                    <asp:BoundField HeaderText="Traits" DataField="SecName"/>
                    <asp:TemplateField>
                        <HeaderTemplate>
                            A
                        </HeaderTemplate>
                        <ItemTemplate>
                            <asp:RadioButton ID='<%# Eval("SecId") %>' runat="server" />
                        </ItemTemplate>
                    </asp:TemplateField>
                    <asp:TemplateField>
                        <HeaderTemplate>
                            B
                        </HeaderTemplate>
                        <ItemTemplate>
                            <asp:RadioButton ID='<%# Eval("SecId") %>' runat="server" />
                        </ItemTemplate>
                    </asp:TemplateField>
                    <asp:TemplateField>
                        <HeaderTemplate>
                            C
                        </HeaderTemplate>
                        <ItemTemplate>
                            <asp:RadioButton ID='<%# Eval("SecId") %>' runat="server" />
                        </ItemTemplate>
                    </asp:TemplateField>
                    <asp:TemplateField>
                        <HeaderTemplate>
                            D
                        </HeaderTemplate>
                        <ItemTemplate>
                            <asp:RadioButton ID='<%# Eval("SecId") %>' runat="server" />
                        </ItemTemplate>
                    </asp:TemplateField>
                    <asp:TemplateField>
                        <HeaderTemplate>
                            E
                        </HeaderTemplate>
                        <ItemTemplate>
                            <asp:RadioButton ID='<%# Eval("SecId") %>' runat="server" />
                        </ItemTemplate>
                    </asp:TemplateField>
                    <asp:TemplateField>
                        <HeaderTemplate>
                            Comments
                        </HeaderTemplate>
                        <ItemTemplate>
                            <asp:TextBox ID="commentBox" runat="server" TextMode="MultiLine"></asp:TextBox>
                        </ItemTemplate>
                    </asp:TemplateField>
                </Columns>
            </asp:GridView>
        </td>
    </tr>
    <tr>
        <td align="center" class="tdtitle" colspan="2">
            &nbsp;</td>
    </tr>
    <tr>
        <td align="center" colspan="2">
            &nbsp;</td>
    </tr>
    <tr>
        <td align="center" colspan="2">
            &nbsp;</td>
    </tr>
    </table>
 </asp:Content>

Upvotes: 0

Views: 1364

Answers (1)

Tom Robinson
Tom Robinson

Reputation: 8508

You need to set the GroupName property of all RadioButtons in the same group/row. This will only allow one to be selected at a time. I wouldn't suggest trying to set the IDs dynamically using Eval, just make sure they are all unique and it should work fine.

Upvotes: 1

Related Questions