jquery - the - is 0 0 1
Tablesorter n[0] undefined (1)
Si recuerdo, está obteniendo ese error porque la tabla está inicialmente vacía (el tbody). Entonces modifique esa línea de código de esto:
checkCell = (n[0].length-1),
a esto:
checkCell = totalRows ? (n[0].length - 1) : 0,
Si está interesado, he bifurcado y agregado muchas mejoras (incluido el cambio anterior) al plugin tablesorter original en github.
Estoy teniendo problemas con el tablesorter. El error es: n [0] no está definido
function appendToTable(table,cache) {
if(table.config.debug) {var appendTime = new Date()}
var c = cache,
r = c.row,
n= c.normalized,
totalRows = n.length,
checkCell = (n[0].length-1),
tableBody = $(table.tBodies[0]),
rows = [];
for (var i=0;i < totalRows; i++) {
rows.push(r[n[i][checkCell]]);
if(!table.config.appender) {
var o = r[n[i][checkCell]];
var l = o.length;
for(var j=0; j < l; j++) {
tableBody[0].appendChild(o[j]);
}
//tableBody.append(r[n[i][checkCell]]);
}
}
Arriba está un fragmento de código de jquery.tablesorter.js La línea donde dice checkCell = (n [0] .length - 1) es donde ocurre el error.
No entiendo cómo se pasa un objeto indefinido a la función. The tablesorter estaba funcionando bien en uno de mis proyectos, pero no funcionaba bien en este proyecto.
[EDITAR] Este es el fragmento de código usado para llamar al tablesorter. Si comento el tablesorter y tablesorterPager nada más en mi código se romperá.
$reviewTable = $("#reviewTable");
$reviewTable.tablesorter();
$reviewTable.tablesorterPager({ container: $("#pager"), size: 100, widgets: [''zebra''] });
Debajo está el lado del cliente
<asp:Repeater ID="reviewRepeater" runat="server">
<HeaderTemplate>
<table cellpadding="0" cellspacing="0" class="MarkAsReceived" id="reviewTable">
<thead>
<tr class="even">
<th align="left">Review ID</th>
<th align="left">Date Submitted</th>
<th align="left">Rating</th>
<th align="left">Image</th>
<th align="left">ProductId</th>
<th align="left">Status</th>
<th align="left">Name</th>
</tr>
</thead>
<tbody>
</HeaderTemplate>
<ItemTemplate>
<tr>
<td align="left"><%#DataBinder.Eval(Container.DataItem, "ReviewId")%></td>
<td align="left"><%#DataBinder.Eval(Container.DataItem, "SubmissionDate")%></td>
<td align="left"><%#DataBinder.Eval(Container.DataItem, "Rating")%></td>
<td align="left"><%#hasImage(DataBinder.Eval(Container.DataItem, "ReviewerImages"))%></td>
<td align="left"><%#DataBinder.Eval(Container.DataItem, "ProductId")%></td>
<td align="left"><%#DataBinder.Eval(Container.DataItem, "Status")%></td>
<td align="left"><%#DataBinder.Eval(Container.DataItem, "Nickname")%></td>
</tr>
</ItemTemplate>
<AlternatingItemTemplate>
<tr>
<td align="left"><%#DataBinder.Eval(Container.DataItem, "ReviewId")%></td>
<td align="left"><%#DataBinder.Eval(Container.DataItem, "SubmissionDate")%></td>
<td align="left"><%#DataBinder.Eval(Container.DataItem, "Rating")%></td>
<td align="left"><%#hasImage(DataBinder.Eval(Container.DataItem, "ReviewerImages"))%></td>
<td align="left"><%#DataBinder.Eval(Container.DataItem, "ProductId")%></td>
<td align="left"><%#DataBinder.Eval(Container.DataItem, "Status")%></td>
<td align="left"><%#DataBinder.Eval(Container.DataItem, "Nickname")%></td>
</tr>
</AlternatingItemTemplate>
<FooterTemplate>
</tbody>
</table>
<asp:Label ID="lblEmpty" Text="No Items." runat="server" Visible=''<%# reviewRepeater.Items.Count == 0 %>''></asp:Label>
</FooterTemplate>
</asp:Repeater>