修改伺服器控制項的ID和Name

2021-09-05 18:20:52 字數 905 閱讀 2828

產生的id和name可以通過幾個方法過載可以去除

1.使用html,這種方法很好,符合原來html的標籤,如htmllink,則不需要name屬性,表單提交需要name屬性

第一部重寫control類的clientid屬性.

此屬性是唯讀的

public

override

string

clientid

這樣的話,控制項返回的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框架使用.

HTML伺服器控制項和WEB伺服器控制項的區別和聯絡

是html元素的一種演變,通過將html元素轉換為html伺服器控制項,也就是新增runat server 屬性,這樣就使得html元素元件可以在伺服器上以元件的方式出現了,並可以通過元件的方式對其程式設計去建立web頁面了 web 伺服器控制項同樣在伺服器建立,且需要 runat server 屬...

Web伺服器控制項和HTML伺服器控制項的總結

web 伺服器控制項比 html 伺服器控制項更豐富 更抽象。web 伺服器控制項在 asp.net 頁上有 asp 標記字首,例如 屬於 system.web.ui.webcontrols 命名空間的asp.net伺服器控制項。html 伺服器控制項 html server control 屬於 ...

HTMl伺服器控制項和WEB伺服器控制項 二

htmlcontrol 所有的html伺服器控制項都繼承自htmlcontrol類。該類分為三種型別 htmlinputcontrol 輸入控制項 htmlcontainercontrol 容器控制項 htmlimage 控制項 htmlcontrol繼承自system.web.ui.control...