解决Infragistics.WebUI.UltraWebGrid 列头文本换行的Bug-阿里云开发者社区

开发者社区> 老朱教授> 正文

解决Infragistics.WebUI.UltraWebGrid 列头文本换行的Bug

简介:
+关注继续查看

UltraWebGrid 是一个功能强大的网格组件,项目采用它主要是因为它可以方便的实现列头合并,固定列的功能,另外提供了丰富的Client Script API,但它也是一个bug很多的组件,其中最明显的问题是‘慢’,页面渲染慢,脚本操作网格速度慢,后端C#遍历数据也慢,但这些问题对我们这种开发能力有限的团队来说,自己去做也不一定比它强多少,虽然可以容忍,但是界面展现上还有不可容忍的Bug,它的固定列头在多列头合并的情况下;列头文本有换行的时候,将出现高度不够的问题,非常影响界面的美观,这样的东西拿出去,基本没有人能愿意使用。本文就针对合并列头的多行文本换行出现的问题给出一段JS代码进行修正;

Bug 现象如图,合并列头后,多行文本列头:


查找错误原因,定位操作的具体位置;

打开IE Developer Toolbar,使用 Select Element By Click 功能找到网格的标题区域;

现在就是分析它的结构,最简单的办法就是看看Height 属性;

将其高度的定义删除掉;现在网格的列头的高度被强制的去掉后,显示一切正常。

那么知道了网格的DHTML的定义和修正办法后,就可以采用一段脚本来自动执行。

现在需要注意的是,脚本执行的顺序;UltraWebGrid 是在页面采用JS初始化的,那么我们的脚本就必须在它之后运行才行;要在它之后运行办法很简单,就是将script标记放到页面的后端去。

ContractedBlock.gifExpandedBlockStart.gif修正脚本
1 <script type="text/javascript" defer="defer">
2 function fixUltraWebGridHeader(gridId) {
3 if(!gridId ) return;
4 var el = document.getElementById(gridId + "_hdiv"); //找到网格标题区域的DIV
5 if (el) {
6 var thList = el.getElementsByTagName("TH"); //获取它内部的TH标记
7 if (thList && thList.length > 0)
8 thList[0].style.height = ''; //经过IE Developer Toolbar调试,只要修改TH0的Height即可
9 }
10 }
11 setTimeout("fixUltraWebGridHeader('<%=Grid.ClientID %>');", 0); //延时执行,在存在Ajax UpdatePanel 的情况下防止IE假死。
12 </script>

有了这样一段脚本,那么这个网格的标题就完美了。

剩下的就是在IE Tester中测试下,IE 6/7/8 标题均无样式问题;如此,即可。




本文转自suifei博客园博客,原文链接:http://www.cnblogs.com/Chinasf/archive/2009/09/04/1560270.html,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
DateTime.ToString("dd/MM/yyyy");后,不能直接Convert.ToDateTime的解决:
原文: DateTime.ToString("dd/MM/yyyy");后,不能直接Convert.ToDateTime的解决: DateTime.ToString("dd/MM/yyyy");后,不能直接Convert.
530 0
org.apache.hadoop.hbase.MasterNotRunningException: Retried 7 times 异常的解决
<p><span style="font-size:14px">在使用HBase Shell的时候出现错误:</span></p> <p></p> <pre name="code" class="plain">ERROR: org.apache.hadoop.hbase.MasterNotRunningException: Retried 7 times</pre> <br><p><br
2124 0
阿里云服务器端口号设置
阿里云服务器初级使用者可能面临的问题之一. 使用tomcat或者其他服务器软件设置端口号后,比如 一些不是默认的, mysql的 3306, mssql的1433,有时候打不开网页, 原因是没有在ecs安全组去设置这个端口号. 解决: 点击ecs下网络和安全下的安全组 在弹出的安全组中,如果没有就新建安全组,然后点击配置规则 最后如上图点击添加...或快速创建.   have fun!  将编程看作是一门艺术,而不单单是个技术。
4615 0
解决 IllegalArgumentException: Could not resolve placeholder in string value "${XXXXXX}"
如题: 导致这一问题的原因:使用了重复的property-placeholder 如一个配置文件中使用了 而另一处使用了 --> classpath:bb.
3706 0
wpf Content数据绑定StringFormat起作用的原理和解决
原文:wpf Content数据绑定StringFormat起作用的原理和解决 03/29/2016 15:05:30 TextBox按照预期的,显示了完整的英文星期,但是Label的格式没有任何改变。
959 0
+关注
3546
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载