如何按数字方式对数据表中的超链接进行排序?
我有以下超链接网格视图列,需要按 IncidentId 按数字排序。有没有办法将数据保留为超链接并仅按 IncidentId 排序?当我使用以下 javascript 函数对其进行“数字”排序时,它会中断并且该列不会排序。如果我将 sType 声明为“string”或“html”,它会进行排序,但它会按字母顺序排列数据而不是数字排序,换句话说,它会将其列为 93, 82, 71, 40, 123, 122, 121 而不是123、122、121、93、82、71、40。
<asp:HyperLinkField HeaderText="Incident ID:" DataNavigateUrlFields="IncidentId"
DataNavigateUrlFormatString="view.aspx?id={0}" DataTextField="IncidentId"/>
<script type="text/javascript">
$(function () {
$('#GridViewIncidents').dataTable({
"bFilter": false,
"bSort": true,
"aoColumnDefs": [{ "sType": "numerical", "aTargets": [0]}]
});
});
</script>
I have the following hyperlink grid-view column that needs to be sorted numerically by IncidentId. Is there a way to keep the data as a hyperlink and only sort by the IncidentId? When I use the following javascript function to sort it "numerical" it breaks and the column will not sort. If I declare sType as "string" or "html" it sorts, but it alphabetizes the data rather than a numerical sort, in other words, it will list it as 93, 82, 71, 40, 123, 122, 121 rather than 123, 122, 121, 93, 82, 71, 40.
<asp:HyperLinkField HeaderText="Incident ID:" DataNavigateUrlFields="IncidentId"
DataNavigateUrlFormatString="view.aspx?id={0}" DataTextField="IncidentId"/>
<script type="text/javascript">
$(function () {
$('#GridViewIncidents').dataTable({
"bFilter": false,
"bSort": true,
"aoColumnDefs": [{ "sType": "numerical", "aTargets": [0]}]
});
});
</script>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您需要覆盖数据表排序函数的默认比较器。
上面的代码将找到包含在 html 标记中的任何整数,并告诉 Datatables 使用自定义比较器函数。
然后,我们需要为此定义 compaere 函数:
这会剥离标签并按数值排序。
只需在设置表之前将所有这些代码放入脚本标记中,它就应该可以工作!
You need to override the default comparers for the datatables sort function.
the above code will find any integer wrapped in an html tag and tell Datatables to use a custom comparer function.
We then need to define the compaere functions for this:
This strips the tags out and sorts by numeric value.
Just put all this code in a script tag before you set up your table and it should work!
我的解决方案是首先定义一个
addType
扩展点:然后我们使用上面的扩展点定义用于识别整数链接的扩展:
请参阅此 博客 了解更多详细信息。 (免责声明:这是我的博客)。
My solution is to first define an
addType
extension point:Thereafter we define the extension for recognising integer links, using the above extension point:
Please see this blog for more details. (Disclaimer: it is my blog).