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

时间:2014-02-26 10:24:57

标签: kendo-ui kendo-grid kendo-asp.net-mvc

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

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

其中e是内置数据对象的div cointainer, 我怎么能用kendo做到这一点?我尝试了同样的但是对于剑道而言,这是完全不同的。

5 个答案:

答案 0 :(得分:9)

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

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

答案 1 :(得分: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));
    }
    
  4. 请注意,只允许在读取,创建,更新和删除操作中传递字符串类型数据。

答案 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;
}