0

我正在使用以下 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 证明了这一点:

在此处输入图像描述

我做错了什么?

4

1 回答 1

0

我最终在 jQuery 调用中明确定义了“fancyNumber”排序的列,如下所示:

<script type="text/javascript">
$.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({
            headers: {
                2:{sorter:'fancyNumber'},
                3:{sorter:'fancyNumber'},
                4:{sorter:'fancyNumber'},
                5:{sorter:'fancyNumber'},
                6:{sorter:'fancyNumber'},
                7:{sorter:'fancyNumber'},
                8:{sorter:'fancyNumber'},
                9:{sorter:'fancyNumber'},
                10:{sorter:'fancyNumber'},
                11:{sorter:'fancyNumber'},
                12:{sorter:'fancyNumber'},
                13:{sorter:'fancyNumber'},
                14:{sorter:'fancyNumber'},
                15:{sorter:'fancyNumber'},
                16:{sorter:'fancyNumber'},
                17:{sorter:'fancyNumber'},
                18:{sorter:'fancyNumber'},
                19:{sorter:'fancyNumber'}
            }
        });
    });
</script>
于 2013-08-22T15:18:25.523 回答