ASP.NET控件開發之修改服務器控件方法淺析
ASP.NET控件開發之修改ASP.NET服務器控件方法是什么呢?下面就向你介紹修改服務器控件的ID和Name的方法:
產生的ID和Name可以通過幾個方法重載可以去除
ASP.NET控件開發之修改ASP.NET服務器控件的ID和Name的方法1.
使用HTML
這種方法很好,符合原來html的標簽,如htmlLink,則不需要name屬性,表單提交需要name屬性
第一部重寫Control類的ClientID屬性.
此屬性是只讀的
- public override string ClientID
- {
- get
- {
- return this.ID;
- }
- }
這樣的話,控件返回的ID就不會很復雜了.
ASP.NET控件開發之修改ASP.NET服務器控件的ID和Name的方法2.
通過表單
重寫HtmlInputControl類的Name屬性就可以通過了.
以上兩點都可以通過System.Web.UI.Adapters.ControlAdapter來實現
ASP.NET控件開發之修改ASP.NET服務器控件的ID和Name的方法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框架使用.
ASP.NET控件開發之修改ASP.NET服務器控件方法就向你介紹到這里,希望對你有所幫助。
【編輯推薦】