Ashish
Ashish

Reputation: 107

radiobuttonlist in repeater control

i have been working on a project as i got stucked in one of the problem as,i have a repeater and radiobuttonlist inside it, i want to fill radiobuttonlist from my database but i am getting an error as object reference not set to the instance of an object.

aspx code
  <asp:Repeater ID="Repeater1" runat="server"OnItemDataBound="fillRepeater_onitembound">
        <HeaderTemplate>

        </HeaderTemplate>
        <AlternatingItemTemplate>

        </AlternatingItemTemplate>
        <ItemTemplate>
            <table style="width:1100px">
                <tr style="width:1100px">
            <asp:Label ID="lbl_teachername" runat="server" Text='<%#Eval("teachername") %>' ></asp:Label>
                       <asp:Label ID="lbl_teachercode" runat="server" Text='<%#Eval("teachercode") %>' style="display:none;" ></asp:Label>

                    </tr>
                <br />
                <tr>
                    <td style="width:150px">
                    <asp:Image ID="img_teacher" runat="server" ImageUrl="~/Images/staff.png" Height="100px" Width="100px"/>
                        </td>
                    <td >
                        <asp:RadioButtonList ID="radioatt" runat="server" OnSelectedIndexChanged="radioatt_OnSelectedIndexChanged" AutoPostBack="true" >

                        </asp:RadioButtonList>
                    </td>
                </tr>
                <tr>
                    <td>

                    </td>

                </tr>

                </table>
        </ItemTemplate>
    </asp:Repeater>

 c# code

 protected void fillRepeater_onitembound(object sender,RepeaterItemEventArgs e)
{
    if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
    {

        sql = "select Description,AttendanceCode from tblattendancecodes";
        ds = obj.openDataset(sql);
        ListItem li;

        RadioButtonList rbtl = (RadioButtonList)e.Item.FindControl("radioatt");

        for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
        {
            li = new ListItem();
            li.Text = ds.Tables[0].Rows[i]["Description"].ToString();
            li.Value = ds.Tables[0].Rows[i]["AttendanceCode"].ToString();
            rbtl.Items.Add(li);
        }

    }
}
  please help me out

Upvotes: 0

Views: 2210

Answers (2)

Shreya
Shreya

Reputation: 204

Add the null check for radio button list and you will not get error of object reference. Please see the below code

c# code

protected void fillRepeater_onitembound(object sender, RepeaterItemEventArgs e)
{
    if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
    {
        sql = "select Description,AttendanceCode from tblattendancecodes";
        ds = obj.openDataset(sql);
        ListItem li;

        RadioButtonList rbtl = (RadioButtonList)e.Item.FindControl("radioatt");
        if (rbtl != null)
        {
            for (int i = 0; i < dt.Rows.Count; i++)
            {
                li = new ListItem();
                li.Text = dt.Rows[i]["ApplicationName"].ToString();
                li.Value = dt.Rows[i]["BuildNumber"].ToString();
                rbtl.Items.Add(li);
            }
        }
    }
}

I tried the code and it worked for me

Upvotes: 1

Sumit
Sumit

Reputation: 136

Debug your code to find out which line is giving null or is not instantiated correctly and you will get the culprit code.

Upvotes: 0

Related Questions