2010-01-19 55 views
2

我有這種方法,目前我正在將每個頁面放在每個頁面中,我知道應該有一種很好的方法將其移至單個位置以便維護和簡化。我只是不確定我應該如何處理事件處理程序。事件處理程序需要位於每個頁面上,因此我如何正確傳遞對頁面的引用,以便我可以引用事件處理程序?實用程序類的事件處理程序參考

private void InsertLinkButton(string text, string id, UpdatePanel updateSummary) 
    { 
     LinkButton link = new LinkButton(); 
     link.Text = text; 
     link.Click += new EventHandler(link_Click); <------ 
     link.CausesValidation = false; 
     AsyncPostBackTrigger trigger = new AsyncPostBackTrigger(); 
     trigger.ControlID = link.ID = "link" + id; 
     trigger.EventName = "Click"; 
     Utils.Tag(link, placeHolderSummary); 
     updateSummary.Triggers.Add(trigger); 
    } 

回答

5

爲什麼不把事件處理程序作爲參數傳遞到方法中?

private void InsertLinkButton(string text, string id, UpdatePanel updateSummary, 
           EventHandler clickHandler) 
{ 
    LinkButton link = new LinkButton(); 
    link.Text = text; 
    link.Click += clickhandler; 
    ... 
} 

與調用它:

InsertLinkButton("text", "id", updatePanel, link_Click); 

(假設link_Click是你的方法名。)

+0

我知道這會是這樣簡單的事情......感覺這麼笨 – jamone 2010-01-19 13:24:38

0

我不是很到ASP.NET,但我已經做了相關的事情在Windows窗體。我有一個FormBase,我擁有所有常用的功能,並且從派生出來,我做了我想做的任何事情。我連接了事件和其他事情,如身份驗證。