【发布时间】:2014-05-30 05:11:05
【问题描述】:
我的数据来源:
var asGridDataSource = new kendo.data.DataSource({
transport: {
read: {
url: function (options) {
DataService.Securities()
.done(function (secs) {
// notify the data source that the request succeeded
options.success(secs);
})
.fail(function (secs, testStatus, err) {
// notify the data source that the request failed
options.error(stats);
});
},
data: function () {
return {
id: $($searchCriteria).val(),
searchBy: $(searchByDDL).val(),
};
}
}
...
还有 DataServices.Securities 函数:
Securities = function () {
return $.ajax({
url: "/api/securities"
});
};
如果我用一个简单的 url 字符串(url:“/api/securities”)替换读取 url 函数,则附加数据会正确添加。但是,当我按照上述方式进行操作时,我会收到两个 Http 请求:
/api/securities
/?id=5&searchBy=3
而不是像这样的单个请求:
/api/securities?id=5&searchBy=3
我能找到的唯一 Kendo 文档有一个示例,说明如何使用上述 url 字符串添加这样的数据,但在使用函数时没有。为什么我没有收到一个请求?
编辑:
在处理了更多之后,我想我明白了。我从这个开始:
var asGridDataSource = new kendo.data.DataSource({
transport: {
read: {
url: "/api/securities",
data: function () {
return {
id: $($searchCriteria).val(),
searchBy: $(searchByDDL).val()
};
}
}
}
});
执行此操作(且仅此操作)会产生如下请求:/api/securities?id=6&searchBy=3。我想修改上面的内容以使用 url 的函数而不是硬编码的字符串。这是原始问题的最重要部分试图做的事情。但是,数据函数的规范不起作用。在硬编码的 url 示例中,Kendo 知道从页面中获取 id 和 searchBy 并将其附加到 url。但是当我对 url 使用函数时,它无法知道如何处理相同的数据。或者这是我的猜测。
【问题讨论】:
标签: kendo-ui kendo-grid kendo-datasource