Asp.net 不带编辑按钮的Listview DropDownList FindControl

Asp.net 不带编辑按钮的Listview DropDownList FindControl,asp.net,listview,drop-down-menu,findcontrol,sys-refcursor,Asp.net,Listview,Drop Down Menu,Findcontrol,Sys Refcursor,当dropdownlist嵌入到listview中时,我无法从数据集填充dropdownlist。我得到“对象引用未设置为对象的实例”。因为,我相信,我没有使用FindControl正确访问dropdownlist 我们不希望此listview上有编辑按钮,我们希望每一行都可以一次编辑。大多数在线示例都有编辑按钮。这可能是我问题的一部分 大多数联机示例也使用ASPX页面中定义的数据源。我们专门使用Oracle.DataAccess sys_refcursor来填充数据集,然后将数据集用作数据源。

当dropdownlist嵌入到listview中时,我无法从数据集填充dropdownlist。我得到“对象引用未设置为对象的实例”。因为,我相信,我没有使用FindControl正确访问dropdownlist

我们不希望此listview上有编辑按钮,我们希望每一行都可以一次编辑。大多数在线示例都有编辑按钮。这可能是我问题的一部分

大多数联机示例也使用ASPX页面中定义的数据源。我们专门使用Oracle.DataAccess sys_refcursor来填充数据集,然后将数据集用作数据源。因此,我必须从VB端填充下拉列表,而不是使用aspx页面中的数据源

我可以独立地填充listview,也可以独立地填充dropdownlist,但走路和嚼口香糖是失败的

下面是我得到的一些片段:

<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>
端接头

那么你认为我做错了什么…

答案是:

  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

你有没有花几个小时在某件事上,在留言板上发帖,过了一会儿才意识到自己的愚蠢?是的,就是我。而不是这个:Dim ddlist作为DropDownList=lvMFGRS.FindControl(“ddMFGRS”),我需要这个Dim ddlist作为DropDownList=lvItem.FindControl(“ddMFGRS”),你可以在这里回答你自己的问题。实际上,我们鼓励您与其他开发人员分享您的知识。
  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