如何在C#中的另一个UserControl中更新用户控件?

时间:2013-05-27 13:07:08

标签: c# asp.net ascx

我在另一个usercontrol中更新用户控件时遇到问题。示例代码:

UserControl MyCart1 = (UserControl)Page.FindControl("MyCart1");
UpdatePanel up_shoppingcart = (UpdatePanel)MyCart1.FindControl("up_shoppingcart");
                    up_shoppingcart.Update();

此代码显示对象引用未设置为对象的实例错误

1 个答案:

答案 0 :(得分:1)

  1. 您需要确定您提供的三行代码中的哪一行,抛出异常。这可以使用调试器轻松完成。

  2. FindControl方法仅搜索直接子控件。您可以编写它的递归版本以进行更深入的搜索。

  3. public Control FindControlDeep(Control parent, string id) 
    {
        Control result = parent.FindControl(id);
        if (result == null)
        {
            for (int iter = 0; iter < parent.Controls.Count; iter++)
            {
                result = FindControlDeep(parent.Controls[iter], id);
                if (result != null)
                    break;
            }
        }
        return result;
    }