剑道网格如何从javascript传递附加参数

Posted

技术标签:

【中文标题】剑道网格如何从javascript传递附加参数【英文标题】:Kendo grid how to pass additional parameter from java script 【发布时间】:2014-03-29 02:33:06 【问题描述】:

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

function onDataBinding(e)

    e.data = argument : 4;

其中 e 是 div 硬币容器,里面有数据对象, 我怎样才能使用剑道做到这一点?我尝试了相同的方法,但对于剑道来说,e arqument 完全不同。

【问题讨论】:

【参考方案1】:

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

$('#grid').data('kendoGrid').dataSource.read(name:value)

【讨论】:

完美运行,但 Read() 不是函数。应该改为 read()。【参考方案2】:

很抱歉派对迟到了,但我有一些特别的蛋糕,你可能会觉得很好吃:

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 助手生成的代码发现了这段代码。

我不知道这是否是帖子时代不存在的进一步实现,但与我看到的其他答案相比,这种方式看起来确实最灵活。高温

【讨论】:

【参考方案3】:

试试这个:

    将此添加到您的网格读取功能或任何 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));
    
    

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

【讨论】:

但我在问如何从 java 脚本中做到这一点,如果我有这个 var 网格,如何使用 javascript 传递它。 让我完全理解,请发布代码并描述您想要实现的目标......【参考方案4】:

如果你想将一些参数传递给 ajax 请求,你可以在你的网格上使用 parameterMap 配置。

这将传递给您的 Ajax 请求。

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

【讨论】:

【参考方案5】:

试试这个:

.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;

【讨论】:

以上是关于剑道网格如何从javascript传递附加参数的主要内容,如果未能解决你的问题,请参考以下文章

剑道网格中的 JavaScript 日期

如何使用javascript检查剑道网格是不是包含特定项目

ng-template中的剑道角度网格列传递数据项

剑道网格 - 如何使用 JavaScript 打开弹出编辑窗口

如何使用剃刀语法在剑道网格列模板中调用 javascript 函数

剑道网格列宽+可滚动