单击所有按钮时调用函数

时间:2018-06-22 11:23:27

标签: c# asp.net

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

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

示例

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

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

2 个答案:

答案 0 :(得分:3)

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

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

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

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

这样的想法是,在整个代码库中,您将使用此自定义按钮代替标准按钮。由于此类继承了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>

答案 1 :(得分:2)

你不能这样做吗?

//Create Function
private void Function()
{
    //Do something
}

protected void Button1_Click()
{        
    // Logic Code Here

    //Call function
    Function();
}

protected void Button2_Click()
{        
    // Logic Code Here

    //Call function
    Function();
}