2011-03-28 42 views
0

我目前正在尝试jqGrid插件。对于在特定列上进行排序,一切都很好。JqGrid排序的href标记而不是内容

我有一个现有的表,我试图将插件应用到。

<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> 

当我排序的列,顺序出来作为

你好,罗布劳超市,嗬,鲍勃

,而不是

鲍勃,你好,罗布劳超市,嗬

它看起来像是对href标签进行排序而不是内容。

非常相似,这个问题(只是一个不同的插件) - Table sorter issue with content

回答

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”。所以字符串将是排序顺序中的最后一个字符串。

可以使用的tableToGrid第二options参数改善这种情况,但最好的办法是明确分离约在列中显示的文本信息(如“鲍勃”,“你好”)和等等来自url数据。然后,对列进行排序将完全符合您的要求。因此,最好不要对数据使用tableToGrid函数,并以直接方式创建jqGrid。

因为我不知道从哪个来源获得关于文本url的信息,所以很难为您提供一些最佳实施建议。您可以在jqGrid herehere中找到如何构建链接的示例。我认为你可以根据你的目的轻松修改例子。

+0

我从表中删除了href,然后放入表中的Id列,然后使用.hideCol隐藏它。毕竟,我放入了一些jQuery代码来重定向用户,当他/她点击行。感谢所有的投入。 – Lareau 2011-03-29 11:44:43

+0

@Lareau:不客气! – Oleg 2011-03-29 13:25:53

1

你可以去自定义格式custom_formatter。它会帮助你在的HREF内容为基础的jqGrid排序的情况下,我觉得这是不可能的。

另一种方法是,您可以传递一个包含href内容的列,并根据此对href列进行排序,尽管这不是首选。

+0

我试过寻找一个自定义的格式化程序,但它很棘手,因为colModel是由于tableToGrid方法而预填充的。 – Lareau 2011-03-29 11:48:01