ASP.NET使用tableSort对gridview进行排序

时间:2017-07-10 13:34:18

标签: jquery asp.net tablesorter

我有一个ASP.NET Web应用程序,我从数据库中提取一些数据,并在用户下拉列表选择时将其绑定到gridview。 gridview包含(以及其他)复选框列。 我想实现gridview排序,但使用AllowSorting和OnSorting的问题在于它回发并且我丢失了复选框选项。

所以我决定研究客户端排序和I jquery tableSort。 我试图实现它,但它没有任何排序。

我在标题先决条件中添加了指向jquery脚本

现在我需要添加

$(document).ready(function() 
    { 
        $("#myTable").tablesorter(); 
    } 
); 

我已经完成了(用我的gridview id替换myTable)并且它没有排序任何东西。可能是因为我没有绑定PageLoad中的数据吗?我正在另一个功能中执行此功能,因为我正在等待用户选择。

然后我发现需要渲染THEAD和TBODY。 所以我在将数据绑定到gridview之后添加了以下内容:

onlineSearchGridView.UseAccessibleHeader = true; //我认为默认情况下这是真的,并不需要它 onlineSearchGridView.HeaderRow.TableSection = TableRowSection.TableHeader;

说完这一切之后,我该怎样做才能使gridview排序? 我不明白当我点击标题栏时,表格如何知道? 没有链接或按钮或任何东西。如何检测事件? 我的猜测是它没有排序,因为我没有达到指定tablesorter的函数,或者在gridview中有任何标题之前它被调用得太早了?

更新

这是我的gridview:

<asp:GridView ID="OnlineSearchGridView" runat="server" Visible="false" AutoGenerateColumns="true" OnRowDataBound="OnlineSearchGridView_RowDataBound" Height="50px" CellPadding="5" Font-Names="Arial" Font-Size="9pt">

这是我的tableort函数:

$(document).ready(function () {
$("OnlineSearchGridView").tablesorter({debug: true});

});

我需要在表格ID之前加上#吗?

此gridview位于登录视图中。这可能是个问题吗? 我注意到,当表被渲染时,它有一个像LoginView1_OnlineSearchGrid的id。我是否需要更改tablesort函数中的id? 如果所有这些都是正确的并且它仍然不起作用,我想它是因为在页面加载时调用document.ready函数并且我在数据表之后绑定数据中的数据某些用户选择。 我应该将其改为仅仅运行tblSort()或其他东西,并在该下拉列表的OnChanged事件中调用它吗?

1 个答案:

答案 0 :(得分:0)

管理解决这个问题。它实际上很简单但我之前没有使用过jquery。 我解决这个问题的方法是使用以下方法:

<script>
    $(document).ready(function () {
        $("table").tablesorter();
    });
</script>  

所以我必须使用“table”而不是gridview id。 我发现这有用: http://www.c-sharpcorner.com/blogs/sorting-in-gridview-using-tablesorterjs-in-asp-net

现在我需要担心整个事情的定制和样式,但至少它是排序所以我很高兴。

谢谢!