2014-01-10 43 views
0

我在下拉列表嵌入到列表视图中时遇到填充数据集下拉列表的麻烦。我得到“对象引用未设置为对象的实例”。因为我相信我没有正确地使用FindControl访问下拉列表ListView 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 

末次

那么你觉得什么我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 
相关问题