2011-02-13 62 views
4

我有一个Web用户控件,里面有一个Treeview控件。我创建了另一个用户控件,其中包含一个Gridview以及其他一些控件。更新基于另一个Web用户控件的Web用户控件

只要用户从我的Treeview中选择一个不同的TreeNode,Gridview应该自行更新。
经过一番搜索,怎么可能是解决办法:

  • 添加和提高从用户控制触发该树视图选择的节点发生变化时的事件。创建一个包含节点值的自定义事件参数,允许它直接传递给事件处理程序。

如果是这样,你能告诉我一个实现这种方法的基本工作示例吗?
谢谢。

回答

3

您可以让您的主页代码在Treeview控件中处理自定义事件。然后在事件处理程序中调用gridview控件中的公共方法。

如果控制1是你的树控制和控制2是网格控制:

主页ASPX(CONTROL1事件处理程序设置的方法在此页):

<%@ Register Src="~/Controls/WebUserControl1.ascx" TagName="Control1" TagPrefix="ctrl" %> 
<%@ Register Src="~/Controls/WebUserControl2.ascx" TagName="Control2" TagPrefix="ctrl" %> 
<ctrl:Control1 ID="control1" runat="server" OnTreeNodeChanged="Control1_TreeNodeChanged" /> 
<ctrl:Control2 ID="control2" runat="server" /> 

主页后面的代码:

public void Control1_TreeNodeChanged(object sender, EventArgs e) 
    { 
     control2.ReloadGrid(); 
    } 

树控制代码

public event EventHandler TreeNodeChanged; 

protected void FromYourTreeNodeEvent(object o, EventArgs e) 
{ 
    //fire your custom event 

    if (TreeNodeChanged!= null) 
    { 
     TreeNodeChanged(this, EventArgs.Empty); 
    }    
} 

电网控制码

public void ReloadGrid() 
    { 
     //do something 
    } 
相关问题