culturenet

  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
  20 随笔 :: 2 文章 :: 136 评论 :: 17 引用

最近做一个项目,因为数据源中的表的字段是动态生成的,所以并不能事先在代码中设置模版列。只能使用AutoGenerateColumns="true" 了,这样就带来一个问体,那就是,我的字段值中带有 html代码,以用来在显示的时候控制格式。以前可以设置模版列的时候就好办了,直接设置模版列的 HtmlEncode="False"就可以了。但是现在就没有办法设置了。找了好多办法也不能实现。就暂时放下了。继续作别的了。晚上回家,忽然想起来一种变通的方法,于是试了一下。果然好用,分享出来。原理很简单我就不说了。看看代码就知道了。

代码如下: 

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
    
{
        
if (e.Row.RowType == DataControlRowType.DataRow)
        
{

            TableCellCollection cells 
= e.Row.Cells;

            
foreach (TableCell cell in cells)
            
{
                cell.Text 
= Server.HtmlDecode(cell.Text);
            }


        }

    }

 问题解决,O了!~ ~

posted on 2006-08-11 08:58 culturenet 阅读(2587) 评论(19) 编辑 收藏

评论

这个方法还行。这样子每个单元都转换。??
 回复 引用   

#2楼 2006-08-11 09:42 aspnetx      
相当于用一个事件来处理行被绑定后的操作
关键是看对GridView对象的各个属性,方法以及事件的熟悉程序
另外当初做asp的时候用的是Server.HtmlEncode,别的就没说了
希望一会dudu不要找你谈话,呵呵
 回复 引用 查看   

#3楼 2006-08-11 09:50 天轰穿      
变通得好
 回复 引用 查看   

#4楼 2006-08-15 15:11 yangli[未注册用户]
AutoGenerateColumns生成的列也有HtmlEncode属性啊?你可以选中GridView->选择列,然后在某列的属性中设置HtmlEncode属性就可以了!
 回复 引用   

#5楼 2006-09-27 19:53 Justin Wang      
不错!
 回复 引用 查看   

#6楼 2007-09-24 17:35 Nay[未注册用户]
这个方法不错,

4楼说的什么方法好像完全是没经过测试的猜想,或者是他根本没弄清楚是啥问题
 回复 引用