在datagrid中,数据绑定时,怎么把数据库中的字符串按照自己设定的方式进行输出是个比较麻烦的事
这个问题困扰了我很久,也试着使用了很多方法:
1。<pre><%#Container.DateItem(“字段名“)</pre>
浏览器可以根据<pre>的属性自动把回车符进行换行,但没有回车的段落就成了长长长长的一大行了,n久也没有解决这个矛盾,因为在<pre>中浏览器强制把字符串同行输出,而没有自动换行。
2。用<ASP:TextBox>控件来装数据库内的内容,这样既保证了自动换行,又能回车换行,但是要求你把属性设置好,比如滚动条、边框、只读。但这样一来,控件的体积就大了,而且在TextBox上的右键就不是正常时的菜单了,比如:没有了常用的后退、复制快捷链接等 ,不方便
3。在dataset中将要格式化的字符串先转换,然后再捆绑。但这样一来得先遍历一遍ds中的数据
4。在.cs文件中先创建一个转换函数,如:public string turnString(string _str){/*处理一下*/ return _string;}
在datagrid中这样调用<%#turnString(Container.DataItem(”字段名”))%> 个人觉得这个方法可以考虑。
但是turnString函数要在当前页或与当前页关联的cs文件,不过可以先预先定义好格式方式,(在dll里)然后turnString调用对象,能做到格式的一致和可维护性