使用 JQuery 模板生成的网格需要使用 Ajax 重置,无法正常工作

发布于 2024-11-30 06:41:19 字数 2013 浏览 0 评论 0原文

有时工作有时不工作。

添加或删除记录后,我尝试通过 Ajax 在 JQuery 模板的帮助下生成网格。在js文件中

$('.gridRow').remove();

无法正常工作。 有人告诉我如何重置网格以再次填充它。下面是代码。

JS文件

var ReloadGrid = (function(){
            $.getJSON("/HeaderMenu/GetHeaderGrid", function(data) {
                $('.gridRow').remove();
                (data.length <= 0) ? $("#gridBtn").hide() : $("#gridBtn").show();
                for (var i=0; i<data.length; i++) { data[i].num = i+1; }
                $('#gridTemplate').tmpl(data).appendTo('table.gridTable > tbody');
            });
 });

MVC3 cxhtml页面

<script id="gridTemplate" type="text/x-jquery-tmpl">
    <tr class="gridRow">
        <td class="cellTd ">
            <input type="checkbox" id="deleteCb" />
            <input type="hidden" id="Id_ + ${num}" class="idField" value="${Id}" />
        </td>
        <td class="cellTd">
            <input id="index" name="index" class="numberField" type="text" value="${IndexOrder}" />
        </td>
        <td class="cellTd">${DisplayName}</td>
        <td class="cellTd ">${UrlName}</td>
        <td class="cellTd ">
            <input type="checkbox" id="activeCb" {{if Active}} checked{{/if}} />
        </td>
    </tr>

</script>

<div class="gridDiv">
<table class="gridTable" cellspacing="0" cellpadding="0">
    <tbody>
        <tr class="gridTitleRow">
            <td class="iconLink width36">Delete</td>
            <td class="iconLink width60">Sort Order</td>
            <td class="iconLink widthAuto">Display Name</td>
            <td class="iconLink widthAuto">Url Name</td>
            <td class="iconLink widthAuto">Active</td>
        </tr>
    </tbody>
</table>
</div>

Sometime working and sometime not.

I am trying to generate Grid with the help of JQuery Template via Ajax once record is added or deleted. In js file

$('.gridRow').remove();

is not working properly. Someone tell me how to reset grid to fill it again. Below is the code.

JS File

var ReloadGrid = (function(){
            $.getJSON("/HeaderMenu/GetHeaderGrid", function(data) {
                $('.gridRow').remove();
                (data.length <= 0) ? $("#gridBtn").hide() : $("#gridBtn").show();
                for (var i=0; i<data.length; i++) { data[i].num = i+1; }
                $('#gridTemplate').tmpl(data).appendTo('table.gridTable > tbody');
            });
 });

on MVC3 cxhtml page

<script id="gridTemplate" type="text/x-jquery-tmpl">
    <tr class="gridRow">
        <td class="cellTd ">
            <input type="checkbox" id="deleteCb" />
            <input type="hidden" id="Id_ + ${num}" class="idField" value="${Id}" />
        </td>
        <td class="cellTd">
            <input id="index" name="index" class="numberField" type="text" value="${IndexOrder}" />
        </td>
        <td class="cellTd">${DisplayName}</td>
        <td class="cellTd ">${UrlName}</td>
        <td class="cellTd ">
            <input type="checkbox" id="activeCb" {{if Active}} checked{{/if}} />
        </td>
    </tr>

</script>

<div class="gridDiv">
<table class="gridTable" cellspacing="0" cellpadding="0">
    <tbody>
        <tr class="gridTitleRow">
            <td class="iconLink width36">Delete</td>
            <td class="iconLink width60">Sort Order</td>
            <td class="iconLink widthAuto">Display Name</td>
            <td class="iconLink widthAuto">Url Name</td>
            <td class="iconLink widthAuto">Active</td>
        </tr>
    </tbody>
</table>
</div>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

从﹋此江山别 2024-12-07 06:41:19

我通常清空包装纸而不是行。

$('table.gridTable > tbody').empty();

但要使其发挥作用,您必须更改表格以使用 thead

<table class="gridTable" cellspacing="0" cellpadding="0">
    <thead>
        <tr class="gridTitleRow">
            <th class="iconLink width36">Delete</th>
            <th class="iconLink width60">Sort Order</th>
            <th class="iconLink widthAuto">Display Name</th>
            <th class="iconLink widthAuto">Url Name</th>
            <th class="iconLink widthAuto">Active</th>
        </tr>
    <thead>
    <tbody>
    </tbody>
</table>

I usually empty the wrapper instead of the row.

$('table.gridTable > tbody').empty();

But for that to work you'd have to change your table to use thead

<table class="gridTable" cellspacing="0" cellpadding="0">
    <thead>
        <tr class="gridTitleRow">
            <th class="iconLink width36">Delete</th>
            <th class="iconLink width60">Sort Order</th>
            <th class="iconLink widthAuto">Display Name</th>
            <th class="iconLink widthAuto">Url Name</th>
            <th class="iconLink widthAuto">Active</th>
        </tr>
    <thead>
    <tbody>
    </tbody>
</table>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文