2013-10-11 128 views
0

我们最近从jqGrid 4.4.1升级到jqGrid 4.5.2,并注意到我们的某些单元格格式不再有效。jqGrid 4.5.2 - 格式化错误

我们以前有一个格式化函数定义为

function addEllipsis(cellvalue) { 
    return '<div class="ellipsis" title="' + cellvalue + '">' + cellvalue + '</div>'; 
} 

我们将在我们的colModel使用,例如,

colModel = [ 
{ 
    name: "longText", 
    label: "longText", 
    formatter: addEllipsis 
}, 
... 
] 

然而,格式化不再工作 - 省略号不被添加到单元格中。当我降级到jqGrid 4.4.3时,它工作正常。但升级到> = 4.5.2会导致省略号消失。

这是4.5版本中的错误吗?

更新:下面是省略号类的CSS。

.ellipsis { 
    white-space: nowrap; 
    overflow: hidden; 
    text-overflow: ellipsis; 
    -o-text-overflow: ellipsis; 
    -moz-binding: url('assets/xml/ellipsis.xml#ellipsis'); 
} 
+0

如何使用类“ellipsis”定义CSS规则?为什么您需要为列使用自定义格式化程序? – Oleg

+0

嗨奥列格,很高兴收到你的来信。我更新了该帖子以包含省略号类的CSS。关于你的评论,有没有一种简单的方法来做到这一点没有自定义格式化? – ktm5124

回答

1

我会在jqGrid中以其他方式实现省略号。在为the answer创建的the old demo中,我使用了更具体的 CSS规则,它允许在网格的所有列中放置省略号。

The new demo使用classes: "ellipsis"财产colModel。它允许将ellipsis类放置在<td>元素的特定列上。我使用的CSS规则

.ui-jqgrid tr.jqgrow td.ellipsis { 
    white-space: nowrap; 
    overflow: hidden; 
    text-overflow: ellipsis; 
    -o-text-overflow: ellipsis; 
} 

该方法的主要优点是:你不需要使用自定义格式。在演示中,我结合formatter: "date"classes: "ellipsis",你可以看到下面的图片作为结果

enter image description here

所以我不认为,上述问题是在4.5.2的jqGrid一个bug。我认为你应该调整你的CSS规则并删除当前使用的自定义格式器。

+0

谢谢,这是一个干净利落的做法。你在这些论坛上的存在是非常感谢:-) – ktm5124

+0

@ ktm5124:不客气!我很高兴你发现我的旧答案也有帮助。 – Oleg