使用datagrid绑定数据源的方式浏览数据,但是数据表中的记录有这样的,比如:1234<ver>1,这样在页面实际看到的是12341,中间的<ver>就丢掉了,谁有好的办法处理这个问题呢?急急急

解决方案 »

  1.   

    做字符串替换
    <换成&lt;
    >换成&rt;
      

  2.   

    你的意思是指我在sql语句里就换好吗?
      

  3.   

    Server.htmlEncode("1234<ver>1");
      

  4.   

    Server.HtmlEncode("1234<ver>1");
      

  5.   

    楼上楼大正解了。
    <%#Server.htmlEncode(DataBinder.Eval(Container.DataItem, "IIV"))%>;
      

  6.   

    Server.htmlEncode
    Server.htmlDecode
      

  7.   

    看来大家都是高手,能不能接着这个问题再帮个忙啊,我用了大家提供的Server.htmlEncode方法在Dg_qzqk_ItemDataBound这个事件里处理了具体代码如下:
        Private Sub Dg_qzqk_ItemDataBound(ByVal sender As Object, ByVal f As System.Web.UI.WebControls.DataGridItemEventArgs) Handles Dg_qzqk.ItemDataBound
            If f.Item.ItemIndex <> -1 Then
                f.Item.Cells(0).Text = f.Item.ItemIndex + 1
                f.Item.Cells(1).Text = Server.HtmlEncode(f.Item.Cells(1).Text)
            End If
        End Sub
    单独测试成功了。
    我这个页面上还有一个datagrid需要处理,如下:
        Private Sub MyDataGrid_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataGridItemEventArgs) Handles MyDataGrid.ItemDataBound
            If e.Item.ItemIndex <> -1 Then
                e.Item.Cells(1).Text = Server.HtmlEncode(e.Item.Cells(1).Text)
                e.Item.Cells(2).Text = Server.HtmlEncode(e.Item.Cells(2).Text)
            End If
        End Sub
    但是当我把MyDataGrid_ItemDataBound这个加上之后,当我在单击页面的一个查询按钮之后,这个Dg_qzqk就不能显示数据了,而且列头变的很大,不明白为什么,注释掉MyDataGrid_ItemDataBound这段解析的代码就可以了,高手有没有碰到过啊?
    我处理的问题是通过第一个datagrid选择一行,取出一个ID号,然后进行第二个datagrid的查询,中间过程我就不体现出来了。
      

  8.   

    我发现问题了,原来是经过Server.HtmlEncode之后再取回来就不一样了,那为什么我用Server.htmlDecode也变不成原来的内容了?