I'm using DataTables to get some sorting and locked header bar functionality. Problem is, when I have my nested listView the in don't match because the nested listView is filled dynamically by button click on a row. Is there any way of solving this? Datatables don't allow colspan which i think would solve it.
Datatable javascript:
$("#tbl_MainProj").DataTable({
fixedHeader: true
, bLengthChange: false
, bPaginate: false
, searching: false
, targets: 'no-sort'
, bSort: true
});
aspx.:
<asp:ListView ID="ListV_Proj" runat="server" DataSourceID="Project_ObjectDataSource" OnItemCommand="ListV_Proj_ItemCommand">
<LayoutTemplate>
<table id="tbl_MainProj" class="gvv">
<thead>
<tr>
<th>
<asp:Label Text="Sub" runat="server" />
</th>
<th>
<asp:Label Text="Nummer" runat="server" />
</th>
<th>
<asp:Label Text="Konto" runat="server" />
</th>
<th>
<asp:Label Text="Navn" runat="server" />
</th>
<th>
<asp:Label Text="Søgenavn" runat="server" />
</th>
<th>
<asp:Label Text="Rekv.nr." runat="server" />
</th>
<th>
<asp:Label Text="PL" runat="server" />
</th>
<th>
<asp:Label Text="Leveres dato" runat="server" />
</th>
<th>
<asp:Label Text="Bekr. Dato" runat="server" />
</th>
<th>
<asp:Label Text="Status" runat="server" />
</th>
</tr>
</thead>
<tr id="itemPlaceholder" runat="server" />
</table>
</LayoutTemplate>
<ItemTemplate>
<tr runat="server">
<td>
<asp:Button ID="btn_GetSubProj" Text="+" runat="server" CommandArgument='<%# Eval("Proj") %>' />
</td>
<td>
<asp:Label ID="lbl_projNo" Text='<%# Eval("Proj") %>' runat="server" />
</td>
<td>
<asp:Label Text='<%# Eval("ACCOUNT") %>' runat="server" />
</td>
<td>
<asp:Label Text='<%# Eval("NAME") %>' runat="server" />
</td>
<td>
<asp:Label Text='<%# Eval("SNAME") %>' runat="server" />
</td>
<td>
<asp:Label Text='<%# Eval("REFNO") %>' runat="server" />
</td>
<td>
<asp:Label Text='<%# Eval("EMPLOYEE") %>' runat="server" />
</td>
<td>
<asp:Label Text='<%# Eval("END_") %>' runat="server" />
</td>
<td>
<asp:Label Text='<%# Eval("CONFIRMEDDATE") %>' runat="server" />
</td>
<td>
<div id="rgy" class='<%# CalcDateExceed(Eval("END_", "{0:d}")) %>'></div>
</td>
</tr>
<tr>
<td>
<asp:ListView ID="ListView_subProj1" runat="server">
<LayoutTemplate>
<table id="tbl_subProj1">
<thead>
<tr>
<th>
<asp:Label Text="Nummer" runat="server" />
</th>
<th>
<asp:Label Text="Konto" runat="server" />
</th>
<th>
<asp:Label Text="Navn" runat="server" />
</th>
<th>
<asp:Label Text="Søgenavn" runat="server" />
</th>
<th>
<asp:Label Text="Rekv.nr." runat="server" />
</th>
<th>
<asp:Label Text="PL" runat="server" />
</th>
<th>
<asp:Label Text="Leveres dato" runat="server" />
</th>
<th>
<asp:Label Text="Bekr. Dato" runat="server" />
</th>
<th>
<asp:Label Text="Status" runat="server" />
</th>
</tr>
</thead>
<tr id="itemPlaceholder" runat="server" />
</table>
</LayoutTemplate>
<ItemTemplate>
<tr runat="server">
<td>
<asp:Label ID="lbl_projNo" Text='<%# Eval("Proj") %>' runat="server" />
</td>
<td>
<asp:Label Text='<%# Eval("ACCOUNT") %>' runat="server" />
</td>
<td>
<asp:Label Text='<%# Eval("NAME") %>' runat="server" />
</td>
<td>
<asp:Label Text='<%# Eval("SNAME") %>' runat="server" />
</td>
<td>
<asp:Label Text='<%# Eval("REFNO") %>' runat="server" />
</td>
<td>
<asp:Label Text='<%# Eval("EMPLOYEE") %>' runat="server" />
</td>
<td>
<asp:Label Text='<%# Eval("END_") %>' runat="server" />
</td>
<td>
<asp:Label Text='<%# Eval("CONFIRMEDDATE") %>' runat="server" />
</td>
<td>
<div id="rgy" class='<%# CalcDateExceed(Eval("END_", "{0:d}")) %>'></div>
</td>
</tr>
</ItemTemplate>
</asp:ListView>
</td>
</tr>
</ItemTemplate>
</asp:ListView>
I only need the Datatable functionality on the parent listView(Table). But the row containing the child listView is throwing the jQuery exception:
Unable to set property '_DT_CellIndex' of undefined or null reference.
Is there any way to solve this and keep the functionality of datatables?
Edit: looking at the Q :DataTables - Not working when added colspan for the last column
I have to use below script somehow. But i cant seem to figure it out?
"aoColumnDefs": [{
"aTargets": [2,3,4,5],
"defaultContent": ""
}]