实用程序类引用的事件处理程序

时间:2010-01-19 13:22:17

标签: c# asp.net

我有这个方法,我目前正在制作每个页面,我知道应该有一个很好的方法将它移动到一个地方,以便于维护和简化。我只是不确定如何处理事件处理程序。事件处理程序需要在每个页面上,所以我如何正确传递对页面的引用,以便我可以引用事件处理程序?

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);
    }

2 个答案:

答案 0 :(得分: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是您的方法名称。)

答案 1 :(得分:0)

我不是非常喜欢ASP.NET,但我在Windows窗体中做了一些相关的事情。我有一个FormBase,其中我拥有所有常用的功能,并且从派生的我做了我想做的任何事情。我搞了事件和身份验证等其他事情。