2013-11-08 5 views
0

Я работаю над проектом, поскольку я застрял в одной из проблем, так как у меня есть ретранслятор и радиообъектив внутри него, я хочу заполнить radobuttonlist из моей базы данных, но я получаю сообщение об ошибке как объект ссылка не установлена ​​в экземпляр объекта.radiobuttonlist в управлении репитером

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 
+0

Где вы получаете исключение? – Ravi

+0

Вы правильно инициализировали объекты sql и obj? – MAC

+0

Еще одна вещь. попробуйте отладить решение и проверьте, что элемент управления rbtl имеет все значения после выполнения этой строки. RadioButtonList rbtl = (RadioButtonList) e.Item.FindControl («radioatt»); – MAC

ответ

0

Отладить код, чтобы узнать, какая строка дала null или не была создана для корректной работы, и вы получите код виновника.

1

Добавьте нулевую проверку для списка переключателей и вы не получите ошибку ссылки на объект. Пожалуйста, смотрите ниже код

C# код

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); 
      } 
     } 
    } 
} 

Я попробовал код и он работал для меня

Смежные вопросы