我有一个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事件中调用它吗?
答案 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
现在我需要担心整个事情的定制和样式,但至少它是排序所以我很高兴。
谢谢!