单击按钮时,我需要调用一个函数。它将检查SQL注入中的页面控件。
它必须是按钮控制的默认功能。这怎么可能?
示例
public void Button1_Click()
{
// Calling Default Function For Button After Run Logic Code
// Logic Code Here
}
默认功能在按钮中的所有逻辑代码之前调用。
答案 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();
}