我试图在infragistics上调用一个过滤方法点燃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上的方法;试图调用方法'过滤器'
答案 0 :(得分:4)
对于遇到此问题的用户,请注意网格过滤的infragistics api参考不准确。在他们的示例中,他们在div上初始化他们的网格 -
<div id="gridFiltering"></div>
然而,事实证明,由于某种原因,除非您将网格连接到表,否则jquery过滤小部件不会初始化。
<table id="gridFiltering"></table>
他们似乎对igniteui网格的其他示例执行此操作,但不在网格过滤的api参考上执行此操作。
答案 1 :(得分:0)
所有igGrid功能都在igGrid的表上初始化。因此,在div
还是table
上初始化网格会有所不同。如果在table
上初始化网格,则可以直接调用过滤功能,例如,在顶级元素上。否则你需要在桌子上调用它。
$('#' + scope.gridSettings.targetId + "_table").igGridFiltering(...);