在jQuery BootGrid中重新加载不起作用

时间:2014-09-01 15:36:10

标签: javascript jquery

我在bootgrid(http://www.jquery-bootgrid.com/

中重新加载ajax数据时遇到问题

我已经成功准备了要显示的网格,但如果我将项目添加到数据库,我想重新加载网格。

我的代码现在是这个(缩短):

var grid;
$(document).ready(function() {
    grid = initGrid();
});
function initGrid() {
    var local_grid = $('#clients-grid').bootgrid({
        "ajax": true,
        "url": "/client/grid",
        "formatters": {
            "commands": function(column, row) {
                return "<button type=\"button\" class=\"btn btn-default command-edit\" data-row-id=\"" + row.id + "\"><span class=\"glyphicon glyphicon-pencil\"></span></button> " +
                        "<button type=\"button\" class=\"btn btn-default command-delete\" data-row-id=\"" + row.id + "\"><span class=\"glyphicon glyphicon-trash\"></span></button> " +
                        "<button type=\"button\" class=\"btn btn-default command-mail\" data-row-id=\"" + row.id + "\"><span class=\"glyphicon glyphicon-envelope\"></span></button>";
            },
            "tooltips": function(column,row) {
                return '<span type="button" class="content-popover" title="'+row.name+'" data-content="'+row.content+'">Najeďte myší pro zobrazení obsahu</span>';
            },
            "clientname": function(column,row) {
                return row.name;
            }
        }
    }).on("loaded.rs.jquery.bootgrid", function() {
        $('.content-popover').popover({
            trigger: 'hover',
            html: true,
            placement: 'right',
            content: $(this).attr('data-content')
        });
        grid.find(".command-edit").on("click", function(e) {
            editClient($(this).data('row-id'));
        }).end().find(".command-delete").on("click", function(e) {
            var id = $(this).data('row-id');
            if (confirm('Opravdu smazat klienta s ID: '+$(this).data("row-id")+'?')) {
                deleteClient($(this).data('row-id'));
            }
        }).end().find(".command-mail").on("click", function(e){
            mailClient($(this).data('row-id'));
        });
    });
    return local_grid;
}

所以网格变量是全局的,可以从任何地方访问.. 但是这里记录了函数重载:http://www.jquery-bootgrid.com/Documentation#methods无法正常工作,并且我将ajax参数设置为true

有什么建议吗?

谢谢,对不起我的英文

3 个答案:

答案 0 :(得分:9)

你有没有尝试过:

$('#grid-data').bootgrid('reload');

对我来说,加载了ajax请求

答案 1 :(得分:2)

所以我自己完成了这项任务: - )

我没有使用grid.reload()方法,但在ajax保存之后,轻松调用:

$('button[title=Refresh]').click();

答案 2 :(得分:0)

更改脚本 jquery.bootgrid.js 片段

中的以下内容
   Grid.prototype.reload = function()
   {
       this.current = 1; // reset
       loadData.call(this);
       return this;
   };

更改为:

Grid.prototype.reload = function(current)
{
    this.current = (current !== 'undefined') ? current : 1; 
    loadData.call(this);

    return this;
};