【问题标题】:Clearing jqGrid before loading new data not working?在加载新数据之前清除 jqGrid 不起作用?
【发布时间】:2011-08-20 01:02:19
【问题描述】:

您好^_^ 我有以下问题:

我有一个带有 jqGrid 的局部视图...我使用 bPopup 将局部视图显示为对话框。

现在视图的一侧有一个项目列表。当单击一个项目时...将显示对话框以及显示与该响应相关的数据的表格...

现在的问题是点击后续项目;单击的第一个项目的数据仍然显示...所以我认为只需调用

$("#ListDialogTable").jqGrid("clearGridData");

将清除数据并允许我显示新数据...但是现在当我尝试在后续单击中显示对话框时...仅显示表标题...没有数据!

对此的任何想法和帮助表示赞赏:) D

附:一些代码;下面的方法被方法ShowListDialog调用

function PopulateTable(model) {
    $("#ListDialogTable").jqGrid("clearGridData");
    $("#ListDialogTable").jqGrid({
        jsonReader:
        {
            root: "rows",
            page: "page",
            total: "total",
            records: "records",
            repeatitems: true,
            cell: "cell",
            id: "id"
        },

        colNames: model.columnN,
        colModel: model.columnM,

        datatype: "jsonstring",
        datastr: model.columnD,

        sortname: model.sortName,
        sortorder: "asc",

        autowidth: true,
        celledit: false,
        gridview: true,
        height: "auto",
        hoverrows: false,
        shrinkToFit: true,
        rowNum: 999,
        viewrecords: true
    });
}

【问题讨论】:

  • 你能发布一些 HTML 和 javascript 代码吗?帮助你对我们更有帮助
  • 已添加代码 ^_^ 抱歉格式不包括第一行和最后一行代码...
  • 每次需要显示对话框时都会执行此代码...所以我不知道一遍又一遍地执行它是否会产生不良影响...
  • 要格式化代码片段,您选择您的代码并单击工具栏中的“{}”元素。在每行的开头插入 4 个空格并在所选文本之前和之后的某个时间插入空行,它的作用并不多。如果您手动插入空白,您将得到相同的结果。

标签: javascript jquery jqgrid


【解决方案1】:

您可以使用以下方法卸载jqGrid

jQuery("#tableId").jqGrid("clearGridData");

【讨论】:

    【解决方案2】:

    您没有发布用于网格的id="ListDialogTable" 元素是如何创建的。是动态构建还是创建一次多次使用?此外,尚不清楚model.columnNmodel.columnM 是否可以在调用之间更改。所以我只能猜测。

    您可能需要使用GridUnload 方法,该方法允许您重新创建网格,包括其所有元素,包括列标题和分页器包含。来自the answerThe demo 演示了它是如何工作的。

    【讨论】:

    • 太棒了!!!谢谢! $("#ListDialogTable").jqGrid("GridUnload");成功了。我需要做的就是在绑定到对话框关闭按钮的单击事件的函数中调用上述代码行^_^
    【解决方案3】:

    可以使用jqgrid的GridUnload方法

    $("#tableId").jqGrid("GridUnload")
    

    这将卸载整个网格并允许您将新数据加载到网格上。

    【讨论】:

    • 不,它不允许您将新数据加载到网格上。您需要先重新创建网格。见奥列格的回答。
    【解决方案4】:

    我有同样的问题,因为我使用的是旧版本的 jqGrid,这是我的解决方案:

    jQuery("#grid").clearGridData(true).trigger("reloadGrid");

    【讨论】:

      猜你喜欢
      • 2018-05-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-13
      • 2014-04-22
      • 1970-01-01
      • 1970-01-01
      • 2018-02-10
      相关资源
      最近更新 更多