2012-01-30 120 views
0

我有一個ASCX頁假設page1.ascx在我有一個按鈕單擊事件處理如何調用按鈕單擊另一個ascx按鈕上的一個ascx按鈕單擊?

btnSave.Click += 
     delegate 
      { 
       if (Save != null) Save(this, EventArgs.Empty);     

      }; 

,我有另一種的ascx頁面假設page2.ascx中,我有一個按鈕,點擊

protected void btnEdit_Click(object sender, EventArgs e) 
{ 
    // want to call 
    btnSave.Click +=delegate 
       { 
       if (Save != null) Save(this, EventArgs.Empty);     

      }; 
} 

我想在btnEdit(page2.ascx)上調用btnSave單擊委託(page1.ascx)。如果是的話,那麼可能如何呢?

+2

您不想觸發事件,而是調用方法。因此,在第二個UserControl中實現一個公共方法'Save'並從'page1'調用它。 – 2012-01-30 13:01:30

回答

0

我建議將代碼從代碼隱藏轉移到單獨的類中,以便它可以被兩個.ascx文件訪問。

1

如果我明白你的意思了,一個方法是如下:

public class Control1 : UserControl { 
    public delegate void ButtonClickHandler(object sender, EventArgs e); 

    public ButtonClickHandler ButtonClickEvent {get;set;} 

    public void Save(object sender, EventArgs e) { 
     //do something 
     if (ButtonClickEvent != null) {ButtonClickEvent(sender, e);} 
     //do something 
    } 
} 

public class Control2 : UserControl { 
    protected override void OnLoad(EventArgs e) { 
     control1.ButtonClickEvent += YourMethod; 
    } 

    protected void YourMethod(object sender, EventArgs e) { // do something here ... } 
} 

另一種方式是在第一控制財產申報您的按鈕的事件,並在第二控制分配你的方法。

相關問題