首页 > 解决方案 > 单击所有按钮时调用函数

问题描述

单击按钮时我需要调用一个函数。它将检查页面控件的 SQL 注入。

它需要是按钮控制的默认功能。这怎么可能 ?

例子

public void Button1_Click()
{
// Calling Default Function For Button After Run Logic Code
// Logic Code Here
}

在按钮中所有逻辑代码之前调用的默认函数。

标签: c#asp.net

解决方案


如果您希望代码中的每个控件实例都执行自定义逻辑,并且只想定义该逻辑一次,那么听起来您正在谈论构建自定义控件

例如,您可以构建一个继承自Button. 自从我不得不处理 WebForms 以来已经有很长时间了,但是面向对象编程的一般原则是相同的。整体结构可能像这样简单:

public class MyButton : Button
{
    protected override void OnClick(EventArgs e)
    {
        // perform your custom logic here
        base.OnClick();
    }
}

(但该框架可能需要更多的属性形式的仪式,其他覆盖方法等。这只是您开发的起点,向您介绍了广泛的概念。无论如何,值得研究自定义控件的其他示例了解如何进一步自定义和完善您的控件。)

这样做的想法是,在整个代码库中,您将使用此自定义按钮而不是标准按钮。由于 this 继承了Button类,因此它Button可以做所有Button可以做的事情。但它也会执行您添加到此类的任何代码。

因此,您只需在一个对象中编写逻辑,然后在整个代码中使用该对象。您web.config需要全局注册一个“标签前缀”以允许您在页面中引用控件:

<system.web>    
  <pages>
    <controls>
      <add tagPrefix="myControls" Assembly="MyControlsAssembly" namespace="MyNamespace">
      </add>
    </controls>
  </pages>
</system.web>

(当然,使用适用于您的场景的值,例如您自己的程序集名称和更有意义的制表符前缀。)

您将在页面中使用该控件:

<myControls:MyButton runat="server"></myControls:MyButton>

推荐阅读