Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/371.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从一个UserControl到另一个UserControl查找值_C#_Asp.net - Fatal编程技术网

C# 从一个UserControl到另一个UserControl查找值

C# 从一个UserControl到另一个UserControl查找值,c#,asp.net,C#,Asp.net,我在那个页面上有一个页面我有两个用户控件uc1和uc2 我在Usercontrol uc1上有一个属性PageID,现在我在该按钮的单击事件上的uc1上有一个按钮,我正在执行一些数据库进程,它将返回PageID,现在我想在另一个Usercontrol uc2上访问此PageID 任何人请帮我找到另一个usercontrol上的PageID ((UserControl1)Page.FindControl("usercontrol1Id)).PageID 但这是肮脏的方式。而是在处理完成时从UC1

我在那个页面上有一个页面我有两个用户控件uc1和uc2 我在Usercontrol uc1上有一个属性PageID,现在我在该按钮的单击事件上的uc1上有一个按钮,我正在执行一些数据库进程,它将返回PageID,现在我想在另一个Usercontrol uc2上访问此PageID

任何人请帮我找到另一个usercontrol上的PageID

((UserControl1)Page.FindControl("usercontrol1Id)).PageID
但这是肮脏的方式。而是在处理完成时从UC1引发一个事件,并让页面捕获它。一旦page有了事件,page就可以调用UC2中的方法传递UC1页面id。

一个简单的解决方案

在页面上创建一个接受PageID的方法

public void MyMethod(int pageID) { ... }
在按钮单击事件中,执行DB查找,然后调用该方法

public void MyButton_Click(object sender, EventArgs e)
{
     var pageID = MyDal.Instance.GetPageID(someParam);
     this.MyMethod(pageID);
}
然后,我的方法可以调用UC2上的方法,也可以只设置一个值。你需要什么都行


当然有更具可扩展性的方法可以做到这一点,不需要使用太多的耦合,但这会很快达到目的。

您尝试过什么?你哪里有困难?向我们展示您当前的代码以及问题所在。请回答问题。您没有提供足够的信息,任何人都无法回答您的问题。或者,您可以在页面上创建一个字段或属性,并使两个控件都可以访问它…一个控件将设置它,另一个控件将使用它。