2011-02-13 75 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 
    } 
相關問題