修改服务器控件的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框架使用.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值