Kendo UI Grid 条件编辑

Posted

技术标签:

【中文标题】Kendo UI Grid 条件编辑【英文标题】:Kendo UI Grid Conditional editing 【发布时间】:2014-05-28 21:00:51 【问题描述】:

我想为某些 CatalogProductId 禁用 DiscountPercentageMRC/NRC/Usage 列。请在下面找到网格的 javascript。任何帮助将不胜感激。

<h2>Kendo Grid bound to ASP.NET MVC action methods</h2>
@* The DIV where the Kendo grid will be initialized *@
<div id="grid"></div>
<script>
  $(document).ready(function () 
     $("#grid").kendoGrid(
         columns: [
          field: "CompanyId",
          field: "CompanyName" ,
          field: "DiscountPercentageMRC" ,
          field: "CatalogProductId",
          field: "DiscountPercentageMRC" ,
          field: "DiscountPercentageNRC" ,
          field: "DiscountPercentageNRC" ,
          field: "DiscountPercentageUsage"
         ],
        height: 400,
        editable: true, // enable editing
        pageable: true,
        sortable: true,
        filterable: true,
        toolbar: ["create", "save", "cancel","edit"], // specify toolbar commands
        dataSource: 
            serverPaging: true,
            serverFiltering: true,
            serverSorting: true,
            pageSize: 10,
            batch: true, 
            editable: "inline",
            transport: 
                read: 
                    url: "@Url.Action("ResellerDiscountsGet", "AccountDetail", new                      BusOrdId = @ViewBag.Message )",
                    type: "POST",

                
            
        ,

        selectable: true
    );

     );

   </script>

【问题讨论】:

Make cell readonly in Kendo Grid if condition is met 的可能重复项 【参考方案1】:

您将使用Edit 事件来启用/禁用单元格。我在这里创建了一个工作示例:http://jsfiddle.net/Eh8GL/151/

function OnEdit(e) 
    // Make sure it's not a new entry
    if (!e.model.isNew()) 
        var catalogproductid =  e.container.find("input[name=CatalogProductId]").data("kendoNumericTextBox").value();

        // Disable DiscountPercentageMRC if catalog productid = 100
        if (catalogproductid == 100) 
            var disableField = e.container.find("input[name=DiscountPercentageMRC]").data("kendoNumericTextBox");
            disableField.enable(false);
        
    

【讨论】:

如果CatalogProductId不是数字类型怎么办? data("kendoNumericTextBox"); 这仅适用于数字类型对吗?字符串类型呢? @Satyadev 如果您想检查公司名称是否为某个值,然后禁用某个字段,您可以这样做。 jsfiddle.net/veys2g9d/1 我想你没有明白我的意思。我想在单击编辑按钮并启用所有其他字段时禁用Company Name

以上是关于Kendo UI Grid 条件编辑的主要内容,如果未能解决你的问题,请参考以下文章

如何根据 kendo ui mvc 网格中的条件格式化行

如何在 kendo.ui.grid 中创建自定义 kendo.ui.Window 以进行编辑

Kendo UI:有条件地阻止工具提示显示在网格单元格上

Kendo Grid:禁用行编辑

kendo ui grid 动态控制某属性

Kendo UI Grid 内联编辑发布的数据为空