3

我试图从他们的小提琴示例中引用 infragistics ignite ui 网格上的过滤器方法。似乎在他们的小提琴上表现正常,但在我的 angularjs 应用程序上却没有。你可以在这里找到小提琴 - http://jsfiddle.net/40xgtcry/

在我的角度 js 应用程序中,我使用一些虚拟数据在角度指令中初始化网格,然后我通过调用 igGridFiltering 方法来跟进。

define(['directives/directives', 'northwind'],
    function(directives) {
        directives.directive('gridView', function () {
            return {
                restrict: 'EA',
                scope: true,
                link: function (scope) {
                    scope.$on("InventoryDataReady", function  (){
                           // $( '#' + scope.gridSettings.targetId ).igGrid(scope.gridSettings);
                        $('#' + scope.gridSettings.targetId).igGrid({
                            autoGenerateColumns: false,
                            columns: [
                                { headerText: "Employee ID", key: "EmployeeID", dataType: "number" },
                                { headerText: "First Name", key: "FirstName", dataType: "string" },
                                { headerText: "Last Name", key: "LastName", dataType: "string" },
                                { headerText: "Birth Date", key: "BirthDate", dataType: "date" },
                                { headerText: "City", key: "City", dataType: "string" },
                                { headerText: "Postal Code", key: "PostalCode", dataType: "string" }
                            ],
                            dataSource: northwind,
                            responseDataKey: "results",
                            features: [
                                {
                                    name: "Responsive",
                                    enableVerticalRendering: false,
                                    columnSettings: [
                                        {
                                            columnKey: "EmployeeID",
                                            classes: "ui-hidden-phone"
                                        },
                                        {
                                            columnKey: "PostalCode",
                                            classes: "ui-hidden-phone"
                                        }
                                    ]
                                },
                                {
                                    name: "Filtering",
                                    type: "local",
                                    mode: "advanced"
                                }
                            ]
                        });
                        $('#' + scope.gridSettings.targetId).igGridFiltering("filter", ([{fieldName: "FirstName", expr: "Nancy", cond: "equals", logic: "OR"}]));

                    });
                }
            };

        });
    });

网格渲染得很好,但过滤器方法调用会产生以下错误 - '错误:在初始化之前无法调用 igGridFiltering 上的方法;试图调用方法“过滤器”

4

2 回答 2

5

遇到这个问题的朋友请注意,网格过滤的infragistics api参考是不准确的。在他们的示例中,他们像这样在 div 上初始化网格 -

<div id="gridFiltering"></div>

然而,事实证明,由于某种原因,除非您将网格连接到表,否则 jquery 过滤小部件不会初始化。

<table id="gridFiltering"></table>

他们似乎对 igniteui 网格的其他样本执行此操作,但不在网格过滤的 api 参考上。

于 2014-08-25T19:11:52.543 回答
0

所有 igGrid 特征都在 igGrid 的表上初始化。因此,在 adiv或 a上初始化网格是有区别的table。如果网格在 a 上初始化table,那么您可以直接调用过滤功能,例如在顶级元素上。否则,您需要在桌面上调用它。

$('#' + scope.gridSettings.targetId + "_table").igGridFiltering(...);
于 2014-09-04T05:09:00.907 回答