更改大型Asp.net应用程序中的每个控件,如TextBox's max length
本文关键字:TextBox length max 控件 Asp 大型 net 应用程序 | 更新日期: 2023-09-27 18:18:18
我有一个情况,我有一个非常大的项目,我想改变在应用程序中存在的每个文本框的最大长度属性。
- 创建一个从标准TextBox继承的新类
- 在新类中设置/覆盖MaxLength属性。
- 使用ASP。. NET标记映射,将标准文本框的所有实例替换为新文本框。在web . config:
<pages> . . . <tagMapping> <add tagType="System.Web.UI.WebControls.TextBox" mappedTagType="YouNamespace.YourTextBox" /> </tagMapping> </pages>
TagMapping由编译器完成,因此不会增加运行时开销。
您也可以使用控件适配器,但在这种情况下,我认为标记映射可能更干净更容易。
您可以使用控件适配器自定义指定类型的所有控件的呈现,这样您就可以控制文本框所接受的最大长度。
来自ControlAdapter
文档(重点是我的):
的特定浏览器或类修改控件浏览器或作为某些功能的任意过滤器。
在这种情况下,任意过滤器将是所有TextBox
控件的公共MaxLength
。
重构。如果项目中所有的文本框控件都派生自System.Web.TextBox,那么创建你自己的MyTextBox,它派生自System.Web.TextBox,并使你所有的文本框都派生自this。
那么,在MyTextBox中只需设置首选的MaxLength
使用文本编辑器的搜索替换选项
或者,如果您不想硬编码它,在页面加载时使用一个通用的Java脚本文件。在这个javascript中设置了页面中每个文本框的maxlength
在Jquery中像这样的东西应该可以为你工作
$(document).ready(function()
{
// replace 6 with new length you want to set
$('input[type=text], textarea').attr('maxlength','6');
});