Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/35.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
Asp.net 基于用户事件的两个用户控件之间的对话_Asp.net_User Controls - Fatal编程技术网

Asp.net 基于用户事件的两个用户控件之间的对话

Asp.net 基于用户事件的两个用户控件之间的对话,asp.net,user-controls,Asp.net,User Controls,在ASP.NET页面中,我添加了两个用户控件,每个控件都有一个下拉列表。dropdownlist的选择应在查询时更改为第二个用户控件 将dropdownlist的选定值传递给第二个最有效的方法是什么 我最初考虑创建一个公共事件(public string onclientselectedindexchange),而第一个用户控件通过公共字符串SelectedValue将第二个用户控件的选定值外包: public string SelectedValue { get { rcg.S

在ASP.NET页面中,我添加了两个用户控件,每个控件都有一个下拉列表。dropdownlist的选择应在查询时更改为第二个用户控件

将dropdownlist的选定值传递给第二个最有效的方法是什么

我最初考虑创建一个公共事件(public string onclientselectedindexchange),而第一个用户控件通过公共字符串SelectedValue将第二个用户控件的选定值外包:

public string SelectedValue
{
  get
  {
    rcg.SelectedValue return;
  }
  set
  {
    rcg.SelectedValue = value;
  }
}
rcg是下拉列表

可以纠正还是有其他选择


提前感谢

替代方案可能是使用AJAX。 用ASP更新面板包围两个dropdownlist,并用第一个dropdownlist“OnSelectedIndexChanged”触发这一个。在事件代码中,您可以绑定第二个dropdownlist


像这样,每次dropdownlist更改都不必重新加载整个页面。

是的,您的操作是正确的

1:公开UC1中的事件(例如uc1ddlchanged)和UC2中的属性(例如uc1ddlSelectedValue)

2:在UC1中ddl1的OnSelectedIndexChanged中,引发事件uc1ddlchanged

3:在包含UC1和UC2的页面上,处理此事件并设置UC2.uc1ddlSelectedValue=UC1.SelectedValue

4:在UC2->uc1ddlSelectedValue->set{}中,您可以设置该值并重新绑定ddl,或者执行更新UC2所需的任何其他操作