首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >根据列值禁用/启用kendo网格中的复选框

根据列值禁用/启用kendo网格中的复选框
EN

Stack Overflow用户
提问于 2014-05-23 04:11:14
回答 1查看 24.6K关注 0票数 0

我有一个剑格所有的工作良好,现在我有了新的要求,即最后一栏我有复选框,就在前一栏我有一个状态列,

如果该文本值只有在该特定行复选框被启用时才被“认证”,如果该文本未被‘认证’,则应禁用该行的复选框,并且不应允许使用jquery选中该复选框,因此我附带了kendogrid的图片,这可能对任何建议都有帮助。

,这些是我的KENDO网格的列

代码语言:javascript
复制
, columns: [
            { field: "ResultFormatID", Title: "ResultFormatID", filterable: false, sortable: false, hidden: true },
            { field: "ID", Title: "ID", filterable: false, sortable: false, hidden: true },
            { field: "RowID", Title: "RowID", filterable: false, sortable: false, hidden: true },
            { field: "BillNumber", Title: "Bill Number", filterable: false, sortable: false, hidden: true },
            { field: "ServiceName", Title: "Service Name", width: 600 },
            { field: "Status", Title: "Service Status", width: 150 }
             , {
               template: $("#template").html(),
               headerTemplate: '<label>  <input type="checkbox" id="checkAll"/>Download</label>', filterable: false, sortable: false, width: 100,
           }
         ]

这是我的个人行复选框

代码语言:javascript
复制
<script id="template" type="text/kendo-template">
   #if(ResultFormatID != 3) { #   
   <input type="checkbox" #= data.Action ? checked="checked" : "" #  class=\"check_row\"/>
   # } else { #
<input type="button" class="k-button info" name="info" value="Preview" />
   # } #

更新

,这是我的CHECKALL函数(以及我所做的取消检查)

代码语言:javascript
复制
 $("#checkAll").on('click', function (e) {
         debugger;

        var $cb = $(this);
        var checked = $cb.is(':checked');
        var grid = $('.Grid_table').data('kendoGrid');

        grid.table.find("tr").find("td:last input").attr("checked", checked);           


        var items = $(".Grid_table").data("kendoGrid").dataSource.data();
        for (i = 0; i < items.length; i++) {
            var item = items[i];
       var status = item.ServiceStatus;

            if (status == "Result Certified ") {
              grid.table.find("tr").find("td:last input").attr("checked", checked);
            }
            else {

                grid.table.find("tr").find("td:last input").prop("checked",false);
            }
     if (!checked) {
            // debugger;
            $(".Grid_table").data("kendoGrid").clearSelection();
        }

    });

});

更新2

现在,按照您的代码,一切正常工作,我可以取消检查未经认证的行,我面临的问题与下面的代码,如果至少一个复选框不选中它是禁用的按钮是用来下载PDF文件,现在如果我选择所有复选框并点击该按钮下载,它现在是禁用的!但是,如果我取消选中类似10行中的任何一行,则下载启用并用于下载该文件。

如果我禁用下面代码的最后3行代码,它有助于使按钮单击,但是我需要取消选中至少一个复选框才能工作,如果没有,它将被禁用,我做错了什么??

代码语言:javascript
复制
 $(function () {
         //debugger;            
        var checkboxes = $(':checkbox:not(#checkAll)').click(function (event) {
            $('#btn_Print').prop("disabled", checkboxes.filter(':checked').length == 0);
        });
        $('#checkAll').click(function (event) {
            checkboxes.prop('checked', this.checked);
            $('#btn_Print').prop("disabled", !this.checked)
        });
    });

如果

EN

回答 1

Stack Overflow用户

发布于 2014-05-23 10:23:09

您需要的似乎是控制type="checkbox"type="checkbox"字段是否为disabled。因此,您应该将模板定义为:

代码语言:javascript
复制
<script id="template" type="text/kendo-template">
   #if(ResultFormatID != 3) { #   
   <input type="checkbox" #= data.Action ? checked="checked" : "" #  class=\"check_row\" #= data.Status == 'Certified' ? disabled='disabled' : "" #/>
   # } else { #
<input type="button" class="k-button info" name="info" value="Preview" />
   # } #
</script>

即:添加data.Status == 'Certified' ? disabled='disabled' : ""条件

在这里看到它的作用:http://jsfiddle.net/Hfk3Q/

编辑:单击标题复选框时所需的更改将更改其实现,只检查未禁用的单元格。类似于:

代码语言:javascript
复制
$('.check_row:not(:disabled)', grid.tbody).prop('checked', true);

在这里看到它的作用:http://jsfiddle.net/Hfk3Q/3/

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23820837

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档