在 jqGrid 的 onSortCol 事件中,可以使用 postData 属性来传递参数。postData 属性是一个包含所有发送到服务器的额外参数的对象。

以下是一个示例,展示了如何在 onSortCol 事件中传递参数:

$("#grid").jqGrid({
    url: "your-data-url",
    datatype: "json",
    colModel: [
        // 列模型配置
    ],
    sortname: "columnName",
    sortorder: "asc",
    postData: {
        customParam: 'customValue'
    },
    onSortCol: function(index, columnIndex, sortOrder) {
        var postData = $("#grid").jqGrid("getGridParam", "postData");
        postData.customParam = 'newValue';
        return 'stop';
    },
    // 其他配置
});

在上面的示例中,我们定义了一个名为 customParam 的自定义参数,并将其初始值设置为 'customValue'。在 onSortCol 事件中,我们可以通过 postData 对象获取和修改该参数的值。在示例中,我们将 customParam 的值更改为 'newValue'。然后,我们使用 return 'stop' 来阻止 jqGrid 执行默认的排序操作。

请注意,如果你使用的是 loadonce: true,则在 onSortCol 事件中修改 postData 对象的值不会生效,因为它只会在第一次加载数据时发送到服务器。如果你需要在 loadonce: true 的情况下修改参数的值,可以使用 setGridParam 方法来更新 postData 对象,然后再次调用 trigger 方法来重新加载数据。以下是一个示例:

onSortCol: function(index, columnIndex, sortOrder) {
    var postData = $("#grid").jqGrid("getGridParam", "postData");
    postData.customParam = 'newValue';

    $("#grid").jqGrid("setGridParam", { postData: postData });
    $("#grid").trigger("reloadGrid");

    return 'stop';
},

在这个示例中,我们使用 setGridParam 方法更新 postData 对象,并使用 trigger 方法重新加载数据。然后,我们返回 'stop' 来阻止默认的排序操作。


原文地址: https://www.cveoy.top/t/topic/piri 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录