在telerik扩展中将附加数据传递给我使用的ajax请求
function onDataBinding(e)
{
e.data = {argument : 4};
}
其中e是内置数据对象的div cointainer, 我怎么能用kendo做到这一点?我尝试了同样的但是对于剑道而言,这是完全不同的。
答案 0 :(得分:9)
最后我得到了我自己的答案,它是:
$('#grid').data('kendoGrid').dataSource.Read({name:value})
答案 1 :(得分:4)
试试这个:
将此添加到网格读取功能或任何CRUD操作:
.Read(read => read.Action("ReadCompanyService", "Admin").Data("CompanyServiceFilter"))
添加javascript:
function CompanyServiceFilter()
{
return {
company: $("#ServiceCompany").val()
}
}
在您的控制器中:
public ActionResult ReadCompanyService([DataSourceRequest]DataSourceRequest request, string company)
{
var gridList = repository.GetCompanyServiceRateList(company);
return Json(gridList.ToDataSourceResult(request));
}
请注意,只允许在读取,创建,更新和删除操作中传递字符串类型数据。
答案 2 :(得分:4)
对于晚会上可怕的晚了,我很抱歉,但是我有一些特别的蛋糕你可能会觉得好吃:
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
答案 3 :(得分:3)
如果要将一些参数传递给ajax请求,可以在网格上使用parameterMap配置。
这将传递给您的Ajax请求。
parameterMap: function (options, operation) {
if (operation === "read") {
var selectedID = $("#SomeElement").val();
return {ID: selectedID }
}
return kendo.stringify(options.models) ;
}
答案 4 :(得分:1)
试试这个:
.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;
}