Kendo grid如何从javascript传递额外的参数

问题描述 投票:5回答:5

在telerik扩展中将附加数据传递给我使用的ajax请求

function onDataBinding(e)
{
    e.data = {argument : 4};
}

其中e是包含数据对象的div容器,如何使用kendo执行此操作?我试过同样的但是对于剑道的论证是完全不同的。

kendo-ui kendo-grid kendo-asp.net-mvc
5个回答
10
投票

最后我得到了自己的答案,它是:

$('#grid').data('kendoGrid').dataSource.Read({name:value})

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


4
投票

试试这个:

  1. 将其添加到网格读取功能或任何CRUD操作: .Read(read => read.Action("ReadCompanyService", "Admin").Data("CompanyServiceFilter"))
  2. 添加javascript: function CompanyServiceFilter() { return { company: $("#ServiceCompany").val() } }
  3. 在你的控制器中: public ActionResult ReadCompanyService([DataSourceRequest]DataSourceRequest request, string company) { var gridList = repository.GetCompanyServiceRateList(company); return Json(gridList.ToDataSourceResult(request)); }

请注意,只允许在读取,创建,更新和删除操作上传递字符串类型数据。


3
投票

如果要将某个参数传递给ajax请求,可以在网格上使用parameterMap配置。

这将传递给您的Ajax请求。

parameterMap: function (options, operation) {
    if (operation === "read") {
        var selectedID = $("#SomeElement").val();
        return {ID: selectedID }
    }
    return kendo.stringify(options.models) ;
}

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;
}
© www.soinside.com 2019 - 2024. All rights reserved.