У меня возникла проблема с заполнением выпадающего списка из набора данных, когда раскрывающийся список встроен в список. Я получаю «Ссылка на объект не установлена в экземпляр объекта». потому что, я полагаю, я не получаю доступ к выпадающему списку правильно, используя 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 делать неправильно ...
Вы когда-нибудь проводили часы на чем-то, отправляли на доску объявлений и понимали свою глупость спустя несколько секунд? Да, это я. Вместо этого: Dim ddlist As DropDownList = lvMFGRS.FindControl ("ddMFGRS") Мне нужен этот Dim ddlist As DropDownList = lvItem.FindControl ("ddMFGRS") – user3182970
Вы можете ответить на свой вопрос здесь, на SO. На самом деле рекомендуется делиться своими знаниями с другими разработчиками. –