gpt4 book ai didi

c# - 在 ASP.NET 中的中继器上使用 JQuery TableSorter 插件不起作用

转载 作者:太空宇宙 更新时间:2023-11-03 13:54:05 25 4
gpt4 key购买 nike

我正在尝试使用此 page 中的表格排序器插件.这是一个非常简单的插件,可以在客户端进行排序。

这是我的中继器:

<asp:Repeater ID="RepeaterChangeLog" runat="server" >
<HeaderTemplate>
<table id="ChangeLogTable" class="table tablesorter table-bordered">
<thead>
<tr>
<th>Date de correction</th>
<th>Correcteur</th>
<th>BugID</th>
<th>Catégorie</th>
<th>Module</th>
<th>Description de la correction</th>
<th>Impact</th>
<th>Rapporté par</th>
<th>Demandé par</th>
</tr>
</thead>
</HeaderTemplate>
<ItemTemplate>
<tbody>
<tr>
<td width="125px"> <%# DataBinder.Eval(Container.DataItem, "ChangeLogDate")%></a></td>
<td width="100px"> <%# DataBinder.Eval(Container.DataItem, "FixedBy")%> </td>
<td width="75px"> <%# DataBinder.Eval(Container.DataItem, "BugID")%> </td>
<td width="100px"> <%# DataBinder.Eval(Container.DataItem, "Category")%> </td>
<td width="100px"> <%# DataBinder.Eval(Container.DataItem, "Module")%> <%# DataBinder.Eval(Container.DataItem, "AdditionalModule")%></td>
<td width="300px"> <%# DataBinder.Eval(Container.DataItem, "Description")%> </td>
<td width="300px"> <%# DataBinder.Eval(Container.DataItem, "Impact")%> </td>
<td width="100px"> <%# DataBinder.Eval(Container.DataItem, "ReportedBy")%> </td>
<td width="100px"> <%# DataBinder.Eval(Container.DataItem, "AskedBy")%> </td>
</tr>
</tbody>
</ItemTemplate>

<FooterTemplate>
</table>
</FooterTemplate>
</asp:Repeater>

这是我如何调用表格排序器

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

结果很奇怪。我可以看到应用了 CSS,当我单击标题时向上和向下箭头发生变化,但排序本身不起作用。我尝试了一个非常简单的表,发现 here同一页面中,该表运行良好。我能看到的两者之间的唯一区别是,一个是用转发器生成的,另一个只是纯 HTML。在我看来,这应该没有什么区别,因为结果是相同的 html,但也许 Microsoft 在 header 中放置了一些 secret 和隐藏的代码,导致插件失败。

我希望有人能帮我解决这个问题!谢谢!

最佳答案

我发现了问题,我不敢相信我第一次没有看到它,但是呃......那是星期五!

该插件正在使用“新的”thead 和 tbody,我不太习惯。当我创建中继器时,我只是将 thead 放在 HeaderTemplate 中,将 tbody 放在 ItemTemplate 中。但我忘记的是 ItemTemplate 在每一行不断重复,所以我的表有多个 tbody。这不行,插件将无法使用。换句话说,那是糟糕的 HTML。

这是一个很好的转发器,tbody 放在正确的位置:

<asp:Repeater ID="RepeaterChangeLog" runat="server" >
<HeaderTemplate>
<table id="ChangeLogTable" class="table tablesorter table-bordered">
<thead>
<tr>
<th>Date de correction</th>
<th>Correcteur</th>
<th>BugID</th>
<th>Catégorie</th>
<th>Module</th>
<th>Description de la correction</th>
<th>Impact</th>
<th>Rapporté par</th>
<th>Demandé par</th>
</tr>
</thead>
<tbody>
</HeaderTemplate>
<ItemTemplate>
<tr>
<td width="125px"> <%# DataBinder.Eval(Container.DataItem, "ChangeLogDate")%></a></td>
<td width="100px"> <%# DataBinder.Eval(Container.DataItem, "FixedBy")%></td>
<td width="75px"><a href="http://adobs.aquadata.com/edit_bug.aspx?id=<%# DataBinder.Eval(Container.DataItem, "BugID")%>"><%# DataBinder.Eval(Container.DataItem, "BugID")%></a></td>
<td width="100px"> <%# DataBinder.Eval(Container.DataItem, "Category")%></td>
<td width="100px"> <%# DataBinder.Eval(Container.DataItem, "Module")%> <%# DataBinder.Eval(Container.DataItem, "AdditionalModule")%></td>
<td width="300px"> <%# DataBinder.Eval(Container.DataItem, "Description")%></td>
<td width="300px"> <%# DataBinder.Eval(Container.DataItem, "Impact")%></td>
<td width="100px"> <%# DataBinder.Eval(Container.DataItem, "ReportedBy")%></td>
<td width="100px"> <%# DataBinder.Eval(Container.DataItem, "AskedBy")%></td>
</tr>
</ItemTemplate>
<FooterTemplate>
</tbody>
</table>
</FooterTemplate>
</asp:Repeater>

关于c# - 在 ASP.NET 中的中继器上使用 JQuery TableSorter 插件不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12865591/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com