c# - 来自实用程序类的事件处理程序引用

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

最佳答案

为什么不直接将事件处理程序作为参数传递到您的方法中?

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 是您的方法名称。)

关于c# - 来自实用程序类的事件处理程序引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2093716/

相关文章:

c# - 如何扩展控件模板(例如使用第三种颜色)

c# - 如何在 C# 中将图像与稍有不同的另一个图像(旋转、亮度、角度)进行比较

asp.net - 我们可以使用 IIS 而不是 Visual Studio 开发服务器运行 Selenium WebDriver 测试用例吗

asp.net - 更新表单后保持对 ajax 更新面板的关注

c# - 谷歌货币转换器

c# - 清理发往电子邮件的用户输入

c# - 可以以声明方式设置 TextBox 文本吗?

插入 DOM 的表单的 jQuery 验证

c# - 当字符串为空时将 NULL 插入 SQL

c# - 提高 LINQ 查询的性能