我正在使用DataTables获得一些排序和锁定的标题栏功能。问题是,当我的嵌套listView不匹配时,因为嵌套的listView是通过单击行来动态填充的。有什么办法解决这个问题吗?数据表不允许使用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>
我只需要父listView(Table)上的Datatable功能。但是包含子listView的行抛出jQuery异常:
无法设置未定义或空引用的属性'_DT_CellIndex'。
有什么办法可以解决这个问题并保持数据表的功能?
编辑:查看Q:DataTables - Not working when added colspan for the last column
我必须以某种方式使用以下脚本。但是我似乎无法弄清楚吗?
"aoColumnDefs": [{
"aTargets": [2,3,4,5],
"defaultContent": ""
}]