0

У меня возникла проблема с заполнением выпадающего списка из набора данных, когда раскрывающийся список встроен в список. Я получаю «Ссылка на объект не установлена ​​в экземпляр объекта». потому что, я полагаю, я не получаю доступ к выпадающему списку правильно, используя FindControlListview DropDownList FindControl без кнопки редактирования

Мы не хотим редактировать кнопки в этом списке, мы хотим, чтобы каждая строка была доступна для редактирования сразу. В большинстве примеров онлайн есть кнопки редактирования. Это может быть частью моей проблемы.

В большинстве примеров в Интернете также используется источник данных, определенный на странице ASPX. Мы используем исключительно Oracle.DataAccess sys_refcursor для заполнения наборов данных, а затем используем набор данных в качестве источника данных. Поэтому я должен заполнить выпадающий список со стороны VB, но не используя источник данных на странице aspx.

Я могу самостоятельно заполнить список и самостоятельно заполнить выпадающий список, но ходьба и жевательная резинка являются провалом.

Так вот некоторые фрагменты того, что я получил:

<asp:ListView ID="lvMFGRS" runat="server"> 
    <ItemTemplate> 
     <tr runat="server"> 
     <td runat="server"> 
      <asp:Label ID="NameLabel" runat="server" Text='<%#Eval("NEW_MANUFACTURER")%>' /> 
     </td> 
     <td runat="server"> 
      <asp:dropdownlist ID="ddMFGRS" runat="server" /> 
     </td> 
     </tr> 
    </ItemTemplate> 
</asp:ListView> 

Потом что-то вроде этого на стороне Vb:

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 
    newmfglist() 'just sticks data in the "NameLabel" and databinds, and this works fine. 
    For Each lvItem In lvMFGRS.Items 
     Dim ddlist As DropDownList = lvMFGRS.FindControl("ddMFGRS") 
     For Each tbl2 As DataTable In dsmfgrlist.Tables 
      For Each dr2 As DataRow In tbl2.Rows 
       Dim str1 As String 
       Dim str2 As String 
       str1 = "dog" 'dr2.Field(Of String)("DataValueField") 
       str2 = "cat" 'dr2.Field(Of String)("DataTextField") 
       ddlist.Items.Add(New ListItem(str2, str1)) 'this is where I get the error 
      Next 
      Next 
     Next 

End Sub

Так что же вы думаете, я m делать неправильно ...

+0

Вы когда-нибудь проводили часы на чем-то, отправляли на доску объявлений и понимали свою глупость спустя несколько секунд? Да, это я. Вместо этого: Dim ddlist As DropDownList = lvMFGRS.FindControl ("ddMFGRS") Мне нужен этот Dim ddlist As DropDownList = lvItem.FindControl ("ddMFGRS") – user3182970

+0

Вы можете ответить на свой вопрос здесь, на SO. На самом деле рекомендуется делиться своими знаниями с другими разработчиками. –

ответ

0

Ответ:

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 
    newmfglist() 'just sticks data in the "NameLabel" and databinds, and this works fine. 
    For Each lvItem In lvMFGRS.Items 
     Dim ddlist As DropDownList = lvItem.FindControl("ddMFGRS") 
     For Each tbl2 As DataTable In dsmfgrlist.Tables 
      For Each dr2 As DataRow In tbl2.Rows 
       Dim str1 As String 
       Dim str2 As String 
       str1 = "dog" 'dr2.Field(Of String)("DataValueField") 
       str2 = "cat" 'dr2.Field(Of String)("DataTextField") 
       ddlist.Items.Add(New ListItem(str2, str1)) 'this is where I get the error 
      Next 
      Next 
     Next 
Смежные вопросы