C# 单击所有按钮时调用函数

C# 单击所有按钮时调用函数,c#,asp.net,C#,Asp.net,我需要在按钮单击时调用一个函数。它将检查页面控件的SQL注入 它需要是按钮控制的默认功能。这怎么可能 范例 public void Button1_Click() { // Calling Default Function For Button After Run Logic Code // Logic Code Here } 在按钮中的所有逻辑代码之前调用默认函数。您不能这样做吗 //Create Function private void Function() { //Do som

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

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

范例

public void Button1_Click()
{
// Calling Default Function For Button After Run Logic Code
// Logic Code Here
}
在按钮中的所有逻辑代码之前调用默认函数。

您不能这样做吗

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

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

例如,您可以构建从
按钮继承的控件。我已经很久没有处理WebForms了,但是面向对象编程的一般原则是一样的。整体结构可能很简单,如下所示:

public class MyButton : Button
{
    protected override void OnClick(EventArgs e)
    {
        // perform your custom logic here
        base.OnClick();
    }
}
(但框架可能需要更多的仪式,如属性、其他重写方法等。这只是您开发的起点,向您介绍了广泛的概念。无论如何,查看其他自定义控件示例,看看如何进一步自定义和完善您的控件,是值得的。)

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

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

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

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

您可以在页面中使用该控件:

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


我不清楚你在问什么。如果您只想从单击处理程序中调用一个方法,是什么阻止您这样做的?它将是按钮控件的默认值。我会写一次代码,当点击项目中的按钮时,函数会自动调用。您现在明白了吗?听起来您可能想(1)在所有按钮的开头放置一个方法调用,或者(2)编写一个自定义的
按钮
对象,该对象从标准
按钮
中继承,并对任何单击事件执行其默认操作,然后调用其他附加的单击处理程序。project中的所有按钮?不,你们所说的项目中的所有按钮是什么意思@ÖmürCanYurdugülIt将是项目中所有按钮的默认功能。例如然后,它将自动导入按钮单击事件。如果所有按钮都有
OnClick=“Button1\u click”
,则所有按钮都将使用此功能。如果没有,您必须在所有
OnClick
函数上调用该函数。正如@hmax所说,您需要将相同的Click\u事件分配给所有按钮,然后通过开关确定单击哪个按钮来执行某些任务,默认情况下,运行您的函数。