六月婷婷综合激情-六月婷婷综合-六月婷婷在线观看-六月婷婷在线-亚洲黄色在线网站-亚洲黄色在线观看网站

明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

ASP.NET中輸入文本的HTML解析方法

[摘要]網頁中用TextBox讓用戶輸入文本,然后存入數據庫,再從數據庫中讀出顯示在頁面上。常常這樣做會遇到不少問題,因為TextBox實際上是一個Windows組件,和網頁顯示標記如:<p>,<td>,<div>等,對字符的解析方法是不同的。比如前者的換行標記為“\r...
網頁中用TextBox讓用戶輸入文本,然后存入數據庫,再從數據庫中讀出顯示在頁面上。常常這樣做會遇到不少問題,因為TextBox實際上是一個Windows組件,和網頁顯示標記如:<p>,<td>,<div>等,對字符的解析方法是不同的。比如前者的換行標記為“\r\n”,而后者為“<br>”。這就帶來一個轉換的問題。

  在做轉換之前,先來考慮幾個問題:

  1、 TextBox用“\r\n”來標記換行而網頁中以“<br>”標記

  2、 網頁中連續的空格當做一個空格處理,比如“a b    c”將會顯示“a b c”

  3、 用戶輸入特殊字符比如:“<”,“&”,“&nbsp;”,“&lt;”,這些都是網頁中有特殊意義的字符,會被解析,而用戶輸入的目的當然是不希望被解析。

  現在來解決這幾個問題,有一種解決辦法是在顯示的時候仍然用TextBox去顯示,這樣就不用做任何轉換,只要把TextBox.ReadOnly設為true,這樣在一定程度上能滿足要求。但是往往為了網頁的美觀,這樣做是不可取的。比較好的辦法是去解析用戶輸入的字符串,可以做這樣的轉換:

  第一步:

 “<”      à“&lt;”

  “&”      à“&amp;”

  “&nbsp;”à“&amp;nbsp;”

  ……(此處的省略號后文有說明)

  第二步:

“ ”      à“&nbsp;”

  “\r\n”  à“<br>”

  這里必須分兩步轉換,因為如果你先做第二步轉換的話混把用戶輸入的特殊字符串和由轉換而的的特殊字符串混淆,比如:

  用戶輸入:a b   c&nbsp;d

  第二步轉換:a&nbsp;b&nbsp;&nbsp;&nbsp;c&nbsp;d

  第一步轉換:a&amp;nbsp;b&amp;nbsp;&amp;nbsp;&amp;nbsp;c&amp;nbsp;d

  可以看到,經過第一次轉換后已經無法分辨用戶輸入的“&nbsp;”和轉換而來的“&nbsp;”,在做第二次轉換的時候就會統一處理就會出錯。結果顯示:a&nbsp;b&nbsp;&nbsp;&nbsp;c&nbsp;d

  如果嚴格按照第一步,第二步的轉換順序來轉換就不會出現這個問題。

  把轉換后的字符串存入數據庫,在顯示的時候直接把從數據庫讀出的字符串給HTML組件賦值,比如:

//這里假設temp是從數據庫中讀出來的,這里演示Table和HtmlTable其他的控件類似

  //顯示的效果是:<a b

  //Table1是Web控件

  String temp = “&lt;a&nbsp;b”;

  Table1.Rows[0].Cells[0].Text = temp;

  //Table2是HTML控件

  Table2.Rows[0].Cells[0].InnerHtml = temp;


[1] [2]  下一頁




主站蜘蛛池模板: 午夜私人福利影院 | 在线亚洲日产一区二区 | 色噜噜狠狠狠色综合久 | 一级毛片一级毛片一级毛片aaav | 亚洲日本成人 | 日日天天夜夜 | 午夜视频黄色 | 中文在线天堂网 | 最近最新的日本中文字幕 | 亚洲精品在线播放视频 | 亚洲精品中文字幕乱码 | 日本 亚洲 欧美 | 日本中文字幕网址 | 午夜三级理论在线观看视频 | 速度与激情9全集免费观看 速度与激情9免费完整版高清 | 四虎成人免费网址在线 | 日本96在线精品视频免费观看 | 四虎影视在线 | 酥酥影院一级毛片在线看 | 欧美一级片黄色 | 日韩免费黄色片 | 影音先锋国产资源 | 伊人二区 | 色成网 | 日本欧美国产 | 视频一区精品 | 青青草原综合网 | 伊人三级 | 午夜免费福利影院 | 日本高清天码一区在线播放 | 亚洲欧洲中文 | 欧美亚洲动漫 | 亚洲日韩成人 | 三级视频在线观看 | 日韩女人毛片在线播放 | 日韩欧美在 | 三级国产日产 | 色综合天天综一个色天天综合网 | 五月香蕉网 | 综合精品 | 宇都宫紫苑(rion)在线播放 |