我正在使用增强型网格,我最近发现在对任何列进行排序时(通过单击标题的列名称),如果该列的结果具有特殊字符,则排序会中断并且不会处理完整的结果"|,*/\-&
等等......任何帮助都会受到赞赏。
这是我的代码:
<body>
<div style="width: 100%; height: 400px;">
<div dojoType="dojo.data.ItemFileReadStore"
jsId="appsStoreForGrid" data="storeData" typeMap="_typeMap">
</div>
<div id="grid" data-dojo-type="dojox.grid.EnhancedGrid"
data-dojo-props="store:appsStoreForGrid, structure:'layoutApps',
errorMessage:'No Data Found',
plugins: {
filter: { closeFilterbarButton: true, ruleCount: 5 },
pagination: { pageSizes: ['5', '25', '50', '100'],
description: true, sizeSwitch: true, pageStepper: true,
gotoButton: true, maxPageStep: 8, position: 'top'}}">
</div>
</div>
</body>
答案 0 :(得分:1)
问题是由于SPACES在内容之前导致了错误的排序。这些空间在浏览器中不可见,但在查看页面源时我才知道它。最后只修改Db中的空格,现在解决问题。感谢。
答案 1 :(得分:0)
信不信由你,你的排序实际上是正常的。网格中的行根据字符串排序进行排序,这取决于ASCII codes给出的字符串值。那么让我们来看看你的第一张图片的一部分:
TEST Email to Check references
Test 1 |ID:1141|
在这种情况下|
与排序几乎没有关系。当我们将这些字符串转换为ASCII代码(十进制)时,我们得到这个(截断为前10个字符):
T E S T E m a i l
84 69 83 84 32 69 109 97 105 108
| <-- 69 < 101, so this is correct
84 101 115 116 32 49 32 124 73 68
T e s t 1 | I D
因此,您可以看到排序功能如何根据值组织这些字符串。同样,在图片#2中:
*** UPDATE-COMPLETED ***
**UPDATE-CMPLETE**
9-20-13-Loads and Mtys
为此,我们只需要查看前几个字符:***
,**U
和9-20
,其值为42 42 42
,{{1} }和42 42 85
分别;所以他们再次井然有序。
如果你想忽略特殊字符,最好的办法是不要在数据网格中允许它们,所以你需要解析它们。