Asp.net中使用Server.HtmlDecode(string str)的使用

weixin_30488085發表於2020-04-06

前言:

在使用Visual Studio開發web頁面時,需要在GridView中繫結Table資料,並加入了CommandField,

試圖,點選詳情按鈕是,獲取GridView中Rows中Cells[1]的值,我使用瞭如下語句,如: string cart = GridViewPacked.Rows[e.NewSelectedIndex].Cells[1].Text.ToString();

並使用了,Session["cart"] = cart;存入快取。

今天突然發現當GridView中Cart單元格為T2 S&V(VI)-15B0001時導致獲取到的String cart=‘T2 S&V(VI)-15B0001’

經過查資料,知道是HtmlEncode引起的。

解決辦法:

1、網上很多都是在GridView繫結資料之前,進行加入資料行,再設定其HtmEncode=False,

以上方法,需要逐個增加GridView中的列,並設定其HtmlEncode屬性,對非固定列的Table繫結時無法使用。

2、在GridView的RowDataBound事件(該事件在行資料繫結完成後觸發)中加入Server.HtmlDecode(string str)函式即可

如下:

        if (e.Row.RowType == DataControlRowType.DataRow)    

     {

            TableCellCollection cells = e.Row.Cells;  

           for (int i = 1; i < cells.Count; i++)     

        {           

            TableCell cell = cells[i];        

            cell.Text = Server.HtmlDecode(cell.Text);  

         }     

     }

   

轉載於:https://www.cnblogs.com/412247111com/p/5007611.html

相關文章