之前做一个功能,要求在Asp.net控件GridView中显示格式规则的数据,数据从数据库中读取,然后把多列拼接成一列,中间插入了N个空格,最后直接把这个DataTable绑定给了页面上的GridView。
但是,显示出来的空格只有一个!
跟踪一下发现,在赋值datasource之前,datatable内容还有有空格的。所以,我就想,把datatable中的空格换成
dr["Project2"]=(dr["Project2"].ToString()).Replace(" ", " ");
替换后,发现在GridView中直接显示 了。郁闷啊。
接着我查看了一下网页源代码,发现,原本替换空格用的 在网页源码上显示成了 
俺又想到页面上只有要 ,在网页内容最后显示之前,给它替换成 不就显示空格了吗,哈哈,试了下,果真成功了。
代码如下:
private string ChineseGallery()
{
System.IO.StringWriter writer = new System.IO.StringWriter(); //提供一个可以写的文本区域
HtmlTextWriter buffer = new HtmlTextWriter(writer); //让htmlWriter操作这个区域,我们就可以获得这个区域里的内容
base.Render(buffer); //先让页面画一遍,让我们得到初始的页面html代码
string html = writer.ToString(); //找到这段代码,我们来处理它,把英文变成汉字
html = html.Replace(" ", " ");
return html;
}
protected override void Render(HtmlTextWriter writer)
{
writer.Write(this.ChineseGallery());
}