C# 从usercontrol获取父页面值
如何从usercontrol获取父页面值。 我在页面中有一个usercontrol。单击usercontrols按钮,我想在执行一个方法后从页面中获取一些值。我的usercontrol中需要这些值。在usercontrol中获取页面结果的最佳方法是什么。页面属性 原始方式: 第一个访问页属性: 接下来,您可以将Page属性强制转换为页面类型(无论它是什么),或者可以使用Page.FindControl方法从其他控件中查找页面值 以一种很好的方式,用户控件应该公开在单击此按钮时触发的事件,页面应该订阅此事件并将数据返回给控件C# 从usercontrol获取父页面值,c#,asp.net,delegates,C#,Asp.net,Delegates,如何从usercontrol获取父页面值。 我在页面中有一个usercontrol。单击usercontrols按钮,我想在执行一个方法后从页面中获取一些值。我的usercontrol中需要这些值。在usercontrol中获取页面结果的最佳方法是什么。页面属性 原始方式: 第一个访问页属性: 接下来,您可以将Page属性强制转换为页面类型(无论它是什么),或者可以使用Page.FindControl方法从其他控件中查找页面值 以一种很好的方式,用户控件应该公开在单击此按钮时触发的事件,页面
这就是您要查找的内容吗?您可以使用
页面
属性获取对页面对象的引用。但是,引用不是特定页面类的类型,因此,如果不先强制转换它,则无法使用它访问类中的特定成员:
MySpecificPageClass page = (MySpecificPageClass)Page;
现在,您可以使用该引用访问该类的任何公共成员。页面中的控件通常声明为受保护,因此您可能必须将其访问级别更改为public,以便从外部访问它们。+1表示第二种方法。usercontrol触发事件的方式是最好的方式,因为任何usercontrol都不应该控制页面。页面应该捕获该事件,并为用户控件提供必要的信息来显示。页面是控制器,用户控件只是视图。除此之外,当你的用户控件在不同的页面中使用时,转换到页面的特殊类型无论如何都会失败。不幸的是,有些人更喜欢走捷径……如果usercontrol位于多个页面上(usercontrols通常用于这些页面),则强制转换将失败。我更喜欢第二种方法,用户控件为页面触发一个事件,然后从页面(包含引用)向用户控件提供必要的信息。@Tim:说得好。对于设计用于不同页面的用户控件,方法当然完全不同。最后我找到了一个解决方案。我正在使用委托。现在,我可以在完成一些操作后从父页面获取值。