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

时间:2011-01-03 14:44:56

标签: asp.net user-controls

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

将所选下拉列表值传递给第二个的最有效方法是什么?

我最初想到创建一个公共事件(公共字符串OnClientSelectedIndexChanged),而第一个用户控件并通过公共字符串SelectedValue外包第二个用户控件的选定值:

public string SelectedValue
{
  get
  {
    rcg.SelectedValue return;
  }
  set
  {
    rcg.SelectedValue = value;
  }
}

rcg是下拉列表。

可以纠正还是有其他选择?

提前致谢

2 个答案:

答案 0 :(得分:0)

替代方案可能是使用AJAX。 使用ASP更新面板围绕两个下拉列表,并使用第一个下拉列表'OnSelectedIndexChanged'触发此下拉列表。在事件的代码中,您可以绑定第二个下拉列表..

像这样,没有必要为每个第一个下拉列表更改重新加载整个页面。

答案 1 :(得分:0)

是的,你走在正确的轨道上。

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

2:在UC1的ddl1的OnSelectedIndexChanged中你举起事件uc1ddlchanged。

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

4:在UC2中 - > uc1ddlSelectedValue - > set {}你可以设置值并重新绑定你的ddl,或者做任何更新UC2所需的事情。