我正在使用以下 jQuery 对表格进行排序:
jQuery.tablesorter.addParser({
id: 'fancyNumber',
is: function (s) {
return /^[0-9]?[0-9,\.]*$/.test(s);
},
format: function (s) {
return jQuery.tablesorter.formatFloat(s.replace(/,/g, ''));
},
type: 'numeric'
});
$(document).ready(function () {
$("#<%=gvReport.ClientID%>").tablesorter();
});
但是,自定义解析器没有正确排序带逗号的数字。它将它们视为字符串。我已将 CSS 类应用于我的标题单元格,如下所示:
<asp:TemplateField ItemStyle-HorizontalAlign="Right" ItemStyle-CssClass="green"
FooterStyle-HorizontalAlign="Right" FooterStyle-CssClass="green"
HeaderStyle-CssClass="green {sorter: 'fancyNumber'}" HeaderStyle-Width="4.55%">
<HeaderTemplate>
<asp:Label ID="lblHForecast_total" Text="Forecast" runat="server"></asp:Label>
</HeaderTemplate>
<ItemTemplate>
<asp:Label ID="lblForecast_total" Text='<%#Eval("f_total", "{0:#,###,0}")%>' runat="server" CssClass="txtBoldSmall"></asp:Label>
</ItemTemplate>
<FooterTemplate>
<asp:Label runat="server" ID="lblFForecast_total" CssClass="txtBoldSmall">
</asp:Label>
</FooterTemplate>
</asp:TemplateField>
请注意,我将添加到我想要排序{sorter: 'fancyNumber'}
的 CSS 类中。<th>
它被正确应用,Chrome 的 Inspector 证明了这一点:
我做错了什么?