在动态创建的用户控件中获取控件的属性值

时间:2012-05-18 20:58:15

标签: asp.net vb.net

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

我有一个名为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中搜索控件。

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

0 个答案:

没有答案