GridView列中的多空格问题
|
作者:不详 来源:互联网
|
日前,做一个应用程序.aspx页面中有一个GridView控件,其数据源是DataTable。数据的某一列(假设为Col)的中间位置有N(N >= 0)
个空格,形如"A BC"、"A BC",字符串中间
空格数量不定。展示到IE浏览器中,用户使用鼠标选择该列的值,拷贝到其他文本框中做为查询条件。
IE浏览器会非常智能化的将"A BC"、"A BC",统统显示为"A BC",即使A和B之间的 空格有 多个,也只是被浓缩为一个。问题出现了,因为用户需要选择渲染后的值作为搜索条件进行查找,显然,"A BC"并不等于"A BC"。 上网找了很多资料,绝大部分都是说,如果DataFormatString不生效,将HtmlEncode属性设置为false。只好自己动手了。 首先想到的是, HTML中, 空格是使用" "表示,那么将Col列中的 空格替换为" "是不是就解决问题了呢?结果,不正确。替换 后,在Col中显示的是"A BC"。为什么这样子呢?应该是Asp.Net在渲染、拼装GridView的 HTML代码时,将"A BC"做为一个字符串处理,而不是对" "进行了转义解释。查看了MSDN后,查看到BoundField类的HtmlEncode属性,在MSDN中这样介绍,HtmlEncode,获取或设置一个值,该值指示在 BoundField 对象中显示字段值之前,是否对这些字段值进行 HTML 编码。 再结合遇到的情况,可以发现,之所以" "没有被渲染,其实就是因为在渲染时,已经将" "看作了字符串。 设置Col对应BoundField的HtmlEncode属性为false,再次运行程序,ok。成功。 |
GridView列中的多空格问题
最新推荐文章于 2021-05-25 17:26:11 发布