在大型Asp.net应用程序中更改TextBox的最大长度等每个控件

时间:2011-12-20 10:25:23

标签: c# asp.net .net

我有一个情况,我有一个非常大的项目,我想更改应用程序中存在的每个文本框的最大长度属性。我怎样才能在服务器上花费很少的精力完成这项工作。

4 个答案:

答案 0 :(得分:4)

  1. 创建一个继承标准TextBox的新类。
  2. 设置/覆盖新类中的MaxLength属性。
  3. 使用ASP.NET标记映射将标准TextBox的所有实例替换为新的实例。在web.config中:
  4. <pages>
    . . .
      <tagMapping>
        <add tagType="System.Web.UI.WebControls.TextBox"
           mappedTagType="YouNamespace.YourTextBox" />
      </tagMapping>
    </pages>
    

    TagMapping由编译器完成,因此不会增加运行时开销。

    您也可以使用控制适配器,但在这种情况下,我认为标签映射可能更清晰,更容易。

答案 1 :(得分:1)

您可以使用control adapter自定义指定类型的所有控件的渲染,这样您就可以控制文本框接受的最大长度。

ControlAdapter文档(重点是我的):

  

适配器修改特定浏览器或类的控件   浏览器或充当某种功能的任意过滤器

在这种情况下,任意过滤器对于所有MaxLength控件都是常见的TextBox

答案 2 :(得分:0)

使用文本编辑器的搜索替换选项。

或者,如果您不想对其进行硬编码,请在页面加载时使用常见的Java脚本文件。在这个javascript中设置页面的每个TextBox的MaxLenght。

Jquery中的这样的东西应该适合你

$(document).ready(function()
{
     // replace 6 with new length you want to set
    $('input[type=text], textarea').attr('maxlength','6');
});

答案 3 :(得分:0)

重构。如果项目中的所有TextBox控件都派生自System.Web.TextBox,那么创建自己的MyTextBox,派生自System.Web.TextBox,并使所有文本框都来自此。

因此,在MyTextBox中只设置了首选的MaxLength