Я использую DataTables, чтобы получить некоторые функции сортировки и блокировки заголовков. Проблема в том, что когда у меня есть вложенный listView, вход не совпадает, потому что вложенный listView динамически заполняется нажатием кнопки на строке. Есть ли способ решить это? Datatables не позволяют colspan, который, я думаю, решит эту проблему.
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>
Мне нужна только функциональность Datatable в родительском listView (таблица). Но строка, содержащая дочерний список, вызывает исключение jQuery:
Невозможно установить свойство '_DT_CellIndex' с неопределенной или нулевой ссылкой.
Есть ли способ решить эту проблему и сохранить функциональность таблиц данных?
Редактировать: глядя на Q: DataTables - не работает при добавлении colspan для последнего столбца
Я должен как-то использовать приведенный ниже скрипт. Но я не могу понять это?
"aoColumnDefs": [{
"aTargets": [2,3,4,5],
"defaultContent": ""
}]