c# - 单击所有按钮时调用函数
问题描述
单击按钮时我需要调用一个函数。它将检查页面控件的 SQL 注入。
它需要是按钮控制的默认功能。这怎么可能 ?
例子
public void Button1_Click()
{
// Calling Default Function For Button After Run Logic Code
// Logic Code Here
}
在按钮中所有逻辑代码之前调用的默认函数。
解决方案
如果您希望代码中的每个控件实例都执行自定义逻辑,并且只想定义该逻辑一次,那么听起来您正在谈论构建自定义控件。
例如,您可以构建一个继承自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>
推荐阅读
- c++ - 将 HEX char 数组存储在字节数组中,而不更改为 ASCII 或其他任何东西
- sql-server - 一个应用程序池允许的开放 SQL 连接数?
- java - 如何从 Spring Boot 控制器返回超链接?
- git - 如果我在分支 A 并且我拉了分支 B,如果我在分支 B 并且我拉分支 A 会有所不同吗?
- java - 列表
获取以另一个列表中的一个字符串结尾的所有元素的计数 - amazon-web-services - CloudFront - 如何在 DNS 不同时将带有 HTTPS 的 ELB 作为自定义源
- ios - 无法根据文本设置动态高度
- gitlab - 使用 Gitlab 问题映射 JIRA 问题字段
- c# - 专门为 VM 和服务放置逻辑的位置
- node.js - 如何跟踪 Mongoose 查询执行时间