修改服务器控件的ID和Name

翻译|其它|编辑:郝浩|2008-01-02 13:54:10.000|阅读 998 次

概述:

# 界面/图表报表/文档/IDE等千款热门软控件火热销售中 >>

产生的 ID 和 Name 可以通过几个方法重载可以去除

1.使用 HTML,这种方法很好,符合原来 html 的标签,如 htmlLink,则不需要 name 属性,表单提交需要 name 属性

第一部重写 Control 类的 ClientID 属性.

此属性是只读的
        public override string ClientID
        {
            get
            {
                return this.ID;
            }
        }
这样的话,控件返回的 ID 就不会很复杂了.

2.表单

重写 HtmlInputControl 类的 Name 属性就可以通过了.

以上两点都可以通过 System.Web.UI.Adapters.ControlAdapter 来实现

3.Web 服务器控件

其 id 和 name 输出是在 AddAttributesToRender 方法中,方法会在 RenderBeginTag 方法中调用.
假设我们要通过 System.Web.UI.WebControls.Adapters.WebControlAdapter 来实现的话,重写 RenderBeginTag 方法的话,无法得到控件的 TagName,当然如果重新制作控件就可以把 TagName 属性暴露出来,这样便可以了

会导致 RenderEndTag 无法输出,难道重写 RenderEndTag,然后一个一个控件的类型判断.或者就真这么做,工作量会比较大些.无法取到 TagName 比较遗憾.

另外的方法就是重写 AddAttributesToRender 方法了.不过会牺牲一些功能.

还是推荐使用 HTML 控件配合 System.Web.UI.Adapters.ControlAdapter 的使用,就可以抛弃讨厌的嵌套代码了,大家可以配合 MVC 框架使用.


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@evget.com

文章转载自:.NET博客园

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP