我目前正在尝试使用jqGrid插件。一切都运行良好,期望在特定列上进行排序。
我有一个现有的表,我正在尝试将插件应用到。
<script type="text/javascript">
$(document).ready(function () {
tableToGrid("#myTable", {})
});
</script>
<table id="myTable">
<thead>
<tr>
<th>
Web Site
</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<a href="http://www.jsmith.com/4093">Hello</a>
</td>
</tr>
<tr>
<td>
<a href="http://www.jsmith.com/4094">Bob</a>
</td>
</tr>
<tr>
<td>
<a href="http://www.jsmith.com/4093">Loblaws</a>
</td>
</tr>
<tr>
<td>
<a href="http://www.jsmith.com/4093">Wahoo</a>
</td>
</tr>
</tbody>
</table>
当我对列进行排序时,订单显示为
你好,Loblaws,Wahoo,Bob
而不是
鲍勃,你好,Loblaws,Wahoo看起来它正在排序href标签而不是内容。
非常类似于此问题(只是一个不同的插件) - Table sorter issue with content
答案 0 :(得分:1)
您可以使用自定义格式化程序custom_formatter。如果在jqgrid中根据href内容进行排序,它会帮助您,我觉得这是不可能的。
或者,您可以再传递一个包含href内容的列,并根据此对href列进行排序,但不是首选。
答案 1 :(得分:1)
你有这么奇怪的排序的原因在于你当前如何使用jqGrid,你创建了一个带有字符串数据列的网格。字符串数据将是:
"\n <a href=\"http://www.jsmith.com/4093\">Hello</a>\n "
"\n <a href=\"http://www.jsmith.com/4094\">Bob</a>\n "
"\n <a href=\"http://www.jsmith.com/4093\">Loblaws</a>\n "
"\n <a href=\"http://www.jsmith.com/4093\">Wahoo</a>\n "
如何看到包含“Bob”子字符串的字符串之前有“4094”。所以字符串将是排序顺序中的最后一个字符串。
您可以使用options
的第二个tableToGrid
参数来改善这种情况,但最好的方法是明确分隔信息关于显示在来自url数据的列(如“Bob”,“Hello”)等。然后列上的排序将完全符合您的要求。因此,最好不要对数据使用tableToGrid
函数,并以直接方式创建jqGrid。
因为我不知道您从哪个来源获得有关文本网址的信息,所以很难为您提供最佳实施建议。您可以找到如何在jqGrid here和here中构建链接的示例。我认为你可以轻松修改这些例子。
答案 2 :(得分:0)
table To Grid不会对您的表进行排序,它只会将您的表转换为网格。 对于客户端排序,这可能对您有所帮助。 jqGrid sorting on client side