0

我想要实现的是使用 JQuery 和 JSON 的按需加载功能。

我的表中有一个值,我们称之为“BatchNumber”,当我单击 + 按钮时,我想触发一个函数,该函数将请求获取该特定订单行的所有相应数据。如何将事件绑定到 +/- 按钮?我不确定文档在哪里。现在我正在解析一个完整的 JSON 分层数据集,但希望按需执行此操作。在下图中,您可以看到我在批次下方的展开订单详细信息的位置。

如果有帮助,这里是我当前的 javascript:

$(function () {
    var data = @Html.Raw(Json.Encode(Model));
    $("#grid").igHierarchicalGrid({
        dataSource: data,
        primaryKey: "BatchNumber",
        autoGenerateColumns: false,
        odata: false,
        initialDataBindDepth: 1,
        columns: [
            { headerText: "Batch Number", key: "BatchNumber", dataType: "string" },
            { headerText: "Process Date", key: "BatchGroupItemDate", dataType: "date", format: "MM-d-yyyy, h:mm tt" },
            { headerText: "Batch Comment", key: "BatchComment", dataType: "string" },
            { headerText: "Number Of Documents", key: "NumberOfDocuments", dataType: "number" },
            { headerText: "Total Transfered", key: "TotalTransfered", dataType: "number" },
            { headerText: "Not Transfered", key: "NotTransfered", dataType: "number" }
        ],
        features: [
            {
                name: "Sorting",
                type: "local"
            },
            {
                name: "Filtering",
                type: "local"
            },
            {
                name: 'Paging',
                type: "local",
                pageSize: 10
            }

        ],
        autoGenerateLayouts: false,
        columnLayouts:[ //This is where I would like to build on demand by calling to the controller for information and inserting it into the grid based on the batchnumber.
            {
                key: "BatchDetails",
                autoGenerateColumns: false,
                primaryKey: "Key",
                foreignKey: "BatchNumber",
                responseDataKey: 'results',
                columns: [
                    { headerText: "Order #", key: "Key", dataType: "string" },
                    { headerText: "Process Date", key: "Date", dataType: "date", format: "MM-dd-yyyy, h:mm:ss tt" },
                    { headerText: "Batch Comment", key: "BatchComment", dataType: "string" },
                    { headerText: "Last Error Message", key: "LastErrorMessage", dataType: "string" },
                    { headerText: "Transferred Status", key: "TransferredStatus", dataType: "string" },
                    { headerText: "Transfer Date", key: "TransferDate", dataType: "date"}
                ],
                features: [
            {
                name: "Sorting",
                type: "local"
            }]
            }
        ]
    });
});

我正在摸索我的方式,所以如果您需要更多信息,请询问,我会更新我的问题。我对 jquery 和 json 工作很陌生。

这是我的网格屏幕的上下文: 在此处输入图像描述

4

1 回答 1

1

这是 igHierarchicalGrid 的按需加载功能的官方示例。您可以检查在扩展父网格的行时发出的 AJAX 请求,以便查看这些 AJAX 请求的输入和输出数据的样子。

关于“按需加载功能”的官方帮助文章在这里,我想强调最后一部分:“MVC 中的按需加载参数”。尽管该功能似乎与 ASP.NET MVC 或 oData 紧密耦合,但您可以使用后端数据提供程序,只要该提供程序符合分层网格对输入和输出数据的期望。

至于挂钩 +/- 按钮,恐怕他们的事件没有暴露。

就事件而言,您可以获得的最佳结果是rowExpandingchildGridCreating或更好的:childrenPopulating您可以在此处找到有关这些事件的官方 API 参考

围绕任何分层网格的按需加载功能进行思考可能是一项艰巨的任务,所以不要担心 - 只要细节清楚,解决方案就不会那么难组合。

我可以提供的最后一个参考(和示例)是官方 Infragistics 论坛。那里已经有不少关于类似困境的讨论。

于 2013-12-29T21:55:29.973 回答