在telerik扩展中将附加数据传递给我使用的ajax请求
function onDataBinding(e)
{
e.data = {argument : 4};
}
其中e是包含数据对象的div容器,如何使用kendo执行此操作?我试过同样的但是对于剑道的论证是完全不同的。
最后我得到了自己的答案,它是:
$('#grid').data('kendoGrid').dataSource.Read({name:value})
对不起在聚会上可怕的晚了,但我有一些特别的蛋糕你可能会觉得好吃:
function readData()
{
return {
anagId: selectedItem.ID
};
}
$("#grid").kendoGrid({
dataSource: {
type: "ajax",
transport: {
read: {"url":"@Url.Action("RecordRead", "Tools")","data":readData}
}
[ rest of the grid configuration]
我通过检查由Kendo Asp.Net MVC帮助程序生成的代码来看到这段代码。
我不知道这是否是在帖子时代不存在的进一步实现,但与我看到的其他答案相比,这种方式看起来真的最灵活。 HTH
试试这个:
.Read(read => read.Action("ReadCompanyService", "Admin").Data("CompanyServiceFilter"))
function CompanyServiceFilter()
{
return {
company: $("#ServiceCompany").val()
}
}
public ActionResult ReadCompanyService([DataSourceRequest]DataSourceRequest request, string company)
{
var gridList = repository.GetCompanyServiceRateList(company);
return Json(gridList.ToDataSourceResult(request));
}
请注意,只允许在读取,创建,更新和删除操作上传递字符串类型数据。
如果要将某个参数传递给ajax请求,可以在网格上使用parameterMap配置。
这将传递给您的Ajax请求。
parameterMap: function (options, operation) {
if (operation === "read") {
var selectedID = $("#SomeElement").val();
return {ID: selectedID }
}
return kendo.stringify(options.models) ;
}
试试这个:
.Read(read => read.Action("Controller", "Action")
.Data(@<text>
function() {
return {
searchModel: DataFunctionName(),
userName: '#=UserName#'
}
}
</text>)
)
JS功能
function DataFunctionName() {
var searchModel = {
Active: $("#activityMonitorIsActive").data('kendoDropDownList').value(),
Login: $("#activityMonitorUsers").data('kendoComboBox').value()
};
return searchModel;
}