一、在onRender事件中写脚本,选中要换行的列,切换到脚本页面,选择onRender事件,输入以下脚本
二、使用text控件,text控件支持动态表达式,这就为我们的脚本有了用武之地
总结:其实两种方法基本是一样的,除了一些个别细节的地方,如在text表达式中求字符串的长度用的是字符串变量的length属性,而在onRender事件中用的是变量的length()方法;在text表达式中给text赋值用的是this.value属性,而在onRender事件中用的是this.setDisplayValue()方法,还有很多其他地方的细小差别,大家可以自己比较。
- var name = this.getValue();
- name = name.toString();
- var interval = 35;//指定换行的条件,当字符超过这个数时换一行,可以根据列的宽度指定合适的长度
- var n = name.length() / interval|0;
- var re = name.length() % interval;
- var rslt = "";
- for(var i=0; i<n; i++){
- var subs = name.substr(i*interval,interval);
- rslt += ( subs + "\n");
- }
- if(re > 0){
- rslt += name.substr(n*interval,re);
- }
- this.setDisplayValue(rslt);
二、使用text控件,text控件支持动态表达式,这就为我们的脚本有了用武之地
- <VALUE-OF format="HTML">//使用html格式,就可以使用<BR>换行符
- var name = row["M_NAME"];
- var interval = 35;//指定换行的条件,当字符超过这个数时换一行
- var n = name.length / interval | 0;
- var re = name.length % interval;
- var rslt = "";
- for(var i=0; i<n; i++){
- var subs = name.substr(i*interval,interval);
- rslt += ( subs + "<BR>");
- }
- if(re > 0){
- rslt += name.substr(n*interval,re);
- }
- this.value = rslt;
- </VALUE-OF>
总结:其实两种方法基本是一样的,除了一些个别细节的地方,如在text表达式中求字符串的长度用的是字符串变量的length属性,而在onRender事件中用的是变量的length()方法;在text表达式中给text赋值用的是this.value属性,而在onRender事件中用的是this.setDisplayValue()方法,还有很多其他地方的细小差别,大家可以自己比较。