更改大型Asp.net应用程序中的每个控件,如TextBox's max length

本文关键字:TextBox length max 控件 Asp 大型 net 应用程序 | 更新日期: 2023-09-27 18:18:18

我有一个情况,我有一个非常大的项目,我想改变在应用程序中存在的每个文本框的最大长度属性。

更改大型Asp.net应用程序中的每个控件,如TextBox's max length

  1. 创建一个从标准TextBox继承的新类
  2. 在新类中设置/覆盖MaxLength属性。
  3. 使用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');
});