我正在尝试将Ignite UI Grid与从Ajax请求返回的数据用于我自己的服务。如果我从单个请求中获取所有数据并使用JSON结果作为网格的数据源,则可以正常工作。我真正想要的是能够在服务器上支持所有分页,过滤和排序,但我很难连接igGrid以进行正确的ajax请求。
我尝试使用url设置我自己的ig.DataSource对象,然后调用它,但我似乎无法将请求指定为“POST”而不是“GET”。我们目前对所有ajax请求使用“POST”并在请求正文中传递参数。我还没有找到使用ig.DataSource执行此操作的方法。
我希望igDataSource支持带回调的函数,如下所示:
$("#myGrid").igGrid({
dataSource: function(data, callback) {
$ajax({url: "/something",
method: "POST",
data: {param1: ""},
success: callback)
}
只会调用一个函数然后处理一个回调(类似于DataTables处理ajax请求的方式。还有一个我认为可能有效的ig.FunctionDataSource,但这似乎也不是我需要的。看起来就像没有真正回调ajax调用挂钩。
是否有其他人遇到此问题或有解决方案?我唯一的另一个选择是尝试找到所有在网格中完成分页,过滤和排序的地方,并为每个地方处理事件并发出我自己的请求并刷新网格。我非常喜欢Ignite控件提供的开箱即用的功能,但没有正确的服务器端支持这个控件我不确定我想要使用它。必须有更好的方法来做到这一点吗?
答案 0 :(得分:0)
请尝试这是否适合您:
var url = "http://igniteui.com/api/employees?callback=?";
ds = new $.ig.DataSource({
type: "remoteUrl",
responseDataKey: "d.results",
responseDataType: "jsonp",
responseContentType: "application/json; charset=utf-8",
dataSource: url,
callback: function (success, error) {
if (success) {
$("#grid").igGrid({
dataSource: ds,
autoGenerateColumns: true
});
} else {
alert(error);
}
},
});
ds.dataBind();