Datatables не работает, когда вложенный asp: ListView? - PullRequest
0 голосов
/ 15 января 2019

Я использую 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": ""
}]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...