zoukankan      html  css  js  c++  java
  • 修改服务器控件的ID和Name

       
    产生的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框架使用.
  • 相关阅读:
    memset 还可以这样用
    搜索(DFS)
    搜索(BFS)
    最大流之sap算法
    最大流之sap算法
    String VS Cstring(字符串)
    String VS Cstring(字符串)
    Set 与 Multiset
    deque(双端队列)
    枚举 TODO
  • 原文地址:https://www.cnblogs.com/Clingingboy/p/1019723.html
Copyright © 2011-2022 走看看