0

我无法恢复对动态创建的用户控件的引用,因此我可以获取其属性或子控件的值。

我有一个名为 BookingObject.ascx 的自定义控件,它位于 App_Code 中。

我可以毫无问题地以编程方式创建控件,但是稍后,当我尝试获取对控件的引用以访问其子控件值时,我只是不断地获取 null。

继承人一些代码:

        Dim MainItem As BookingItem = TryCast(LoadControl(GetType(BookingItem), Nothing), BookingItem)
        MainItem.ID = "Item_" & NumberOfControls.ToString() 'Item_0
        Dim lblid As Label = MainItem.FindControl("lblID")
        lblid.Text = (NumberOfControls + 1).ToString()


        NewItemPH.Controls.Add(MainItem)
        Me.NumberOfControls += 1

这工作正常,我可以成功设置标签值。

然而:

    Dim MainItem As BookingItem = TryCast(Me.Page.FindControl("Item_0"), BookingItem)
    Dim product_id As DropDownList = MainItem.FindControl("product_id")

尝试 FindControl("product_id") 时出现空引用异常,因为 MainItem 什么都没有。

我已经为这个问题苦苦挣扎了好几个小时,我认为这很简单。我确定我只是缺少一些小东西。

谁能告诉我我做错了什么?

感谢所有帮助。

更新 没关系,当我应该搜索 NewItemPH 时,我正在愚蠢地搜索 Me.Page 以获取控件。

感谢神秘人给了我线索,然后在几分钟后删除了他们的评论。

4

0 回答 0