自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

ASP.NET控件的HTML代碼

開發(fā) 后端
本文介紹ASP.NET控件的HTML代碼,開發(fā)一個ASP.NET控件時,不管我們的控件有多么復(fù)雜的功能和UI表現(xiàn),我們最終在客戶端瀏覽器里得到的都只是HTML代碼和腳本的組合。

我們知道制作一個控件,一般比只實現(xiàn)同樣功能的模塊要復(fù)雜,因為我們需要考慮更多的異常和適應(yīng)性,才能達(dá)到我們整合和復(fù)用代碼的效果。而當(dāng)我們開發(fā)一個ASP.NET控件時,不管我們的控件有多么復(fù)雜的功能和UI表現(xiàn),我們最終在客戶端瀏覽器里得到的都只是HTML代碼和腳本的組合。

而就是這些控件生成的HTML代碼,它們的格式是不是就可以隨意處理呢。那么不能隨意又是什么意思?難道我們必須要保證HTML代碼的排版,并保持 HTML良好的層次縮進(jìn)什么的嗎?這里剛剛相反,我們因該盡量去掉和控件HTML代碼沒有關(guān)系的任何東西,包括"無用的"空格和回車。為什么要強(qiáng)調(diào)無用的呢?我們知道瀏覽器在處理HTML源代碼時,對于其中連續(xù)的空格和回車,都是按一個空格來處理并顯示的。所以,似乎我們并不用在意ASP.NET控件在Render時,HTML代碼前后或中間多出的無用空格或回車。那么我們來看一下下面這個示例:

  1. <img id="analysisChart" src="ChartPic_000007.
    jpeg?B9FA64E7-2020-4430-AAF4-B20A51794909"
     usemap="#usemap_analysisChart"> 
  2. <map id="usemap_analysisChart"> 
  3. <area>...<area> 
  4. </map> 

上面這個代碼片斷是Dundas Web Controls中的Web Chart控件輸出的HTML代碼。這個帶有hot area的Chart圖片在使用時似乎沒有什么問題,如果就是普通的單獨使用這個Chart,確實是沒有問題??墒钱?dāng)我們把Dundas Chart組合到自定義的WebControl中時,它這種帶有換行和縮進(jìn)的HTML代碼就帶來問題了。由于布局的需要,我需要把這個Chart放入一個表格之中,并讓表格顯示一個像素的border緊密包圍Chart。本來這個Chart的外觀就只是一個圖片而已,這樣的組合似乎應(yīng)該沒有任何問題,可實際情況是那個Chart的圖片始終不能撐滿外面的表格,而在圖片底部和表格底邊上總是有3-4 個像素的間隙。而這個間隙就是由于< img />和< map>之間有空格和換行(雖然IE只當(dāng)它是一個空格)造成的。

由于Dundas Web Chart是發(fā)布的已經(jīng)編譯好的dll,所以要刪除它輸出的HTML中無用的空格和回車就變的比較麻煩了。我們只能從它的Render流中把HTML代碼取出,然后手動的去掉tags之間的空格和回車,再輸出到新控件的輸出流中去。這樣的方法雖然可以解決一部分問題,可是如果遇到內(nèi)部控件過于復(fù)雜,這時不管在正確性還是效率上就都是額外的負(fù)擔(dān)。

所以從上面的問題我們看出,當(dāng)我們制作一個ASP.NET控件時,因該讓最后呈現(xiàn)的HTML代碼遵循"代碼緊湊原則",以提高控件的適應(yīng)性。在這樣的原則下先前那個示例就應(yīng)該這樣:

  1. <img id="analysisChart" src="ChartPic_000007.jpeg?B9FA64E7-2020-4430-AAF4-B20A51794909" 
  2. usemap="#usemap_analysisChart"><map 
  3. id="usemap_analysisChart"><area>
  4. ...
  5. <area></map> 

這樣一來Chart圖片就和包圍它的表格邊框緊密挨在一起了。

【編輯推薦】

  1. 微軟發(fā)布ASP.NET MVC 2預(yù)覽版 多項功能更新
  2. ASP.NET服務(wù)器自定義控件安全準(zhǔn)則
  3. ASP.NET編程規(guī)范之編碼規(guī)范淺析
  4. 關(guān)于ASP.NET Session的一點認(rèn)識
  5. ASP.NET編程工具ASP.NET Web Matrix詳細(xì)介紹
責(zé)任編輯:佚名 來源: 博客園
相關(guān)推薦

2009-07-24 09:57:25

ASP.NET HTM

2009-07-27 13:20:19

HTML Map控件ASP.NET

2009-07-30 12:42:19

html控件和web控

2009-07-27 13:52:36

Panel控件ASP.NET

2009-09-11 09:09:00

ASP.NETAdRotator控件

2009-07-20 13:32:24

ScriptManagASP.NET

2009-07-24 15:35:00

ASP.NET Gri

2009-08-04 10:43:59

ASP.NET控件開發(fā)

2009-08-19 13:44:00

ASP.NET Lis

2009-07-29 13:50:26

UpdatePanelASP.NET

2009-08-05 15:57:03

ASP.NET控件ID

2009-08-17 09:24:25

ASP.NET控件

2009-07-27 16:19:59

ASP.NET報表控件

2009-08-03 15:08:00

SqlDataSour

2009-07-27 17:25:53

ASP.NET驗證控件

2009-08-03 15:43:22

asp.net控件

2009-07-28 13:22:13

DataList和ReASP.NET

2009-07-21 15:27:12

ASP.NET 2.0

2009-08-07 15:32:28

ASP.NET復(fù)合控件

2009-07-28 14:47:18

ASP.NET MVC
點贊
收藏

51CTO技術(shù)棧公眾號