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

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

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

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

【问题讨论】:

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


    【解决方案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】:

      试试这个:

      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));
        }
        

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

      【讨论】:

      • 但我在问如何从 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;
        }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多