禁用调整一列剑道网格的大小

Posted

技术标签:

【中文标题】禁用调整一列剑道网格的大小【英文标题】:Disable resize for one column kendo grid 【发布时间】:2015-07-16 04:53:27 【问题描述】:

我只需要在剑道网格中仅禁用一列的大小调整。 我见过columnresize 事件,但我不明白如何在下面的网格示例中使用它。

我注意到有一个类似的question

我的网格-

@(html.Kendo().Grid<CCCAdmin.ViewModels.AdminReportViewModel>().Name("AdminReportGrid")
          .HtmlAttributes(new @class = "table table-bordered")
          .Columns(columns =>
          
              columns.Bound(l => l.Id).Width("11%").Title("Id");
              columns.Bound(l => l.CustomerName).Width("30%");
).Resizable(r => r.Columns(true))
  .Excel(excel => excel
  .FileName("Admin Report Export.xlsx")
  .Filterable(true)
  .ProxyURL(Url.Action("Excel_Export_Save", "AdminReport")))
  .DataSource(dataSource => dataSource
  .Ajax().Read(read => read.Action("AdminReport_Read", "AdminReport"))
         .Destroy(update => update.Action("AdminReportDestroy", "AdminReport"))
              .Sort(sort => sort.Add("CallCounting").Descending())
              .PageSize(20)
              .Model(model =>
              
                  model.Id(a => a.Id);
              )
          )
        .Events(events =>
            
                events.DataBound("dataBound");
                events.ExcelExport("onExcelExport");
            
          )
        .ClientDetailTemplateId("CustomerInvoices")
        .Sortable()
        .Filterable()
    )

【问题讨论】:

我想从客户 ID 列而不是整个网格中删除可调整性。 docs.telerik.com/kendo-ui/controls/data-management/grid/how-to/… 【参考方案1】:

Kendo ASP.NET MVC 中没有开箱即用的功能,但您可以使用 javascript 完成任务。在下面的示例中,列Id 不会调整大小。

    var grid = $("#GridName").data("kendoGrid");

    grid.resizable.bind("start", function (e) 
        if ($(e.currentTarget).data("th").data("field") == "Id") 
            e.preventDefault();
            setTimeout(function () 
                grid.wrapper.removeClass("k-grid-column-resizing");
                $(document.body).add(".k-grid th").css("cursor", "");
            );
        
    );

演示

$(function()

            $("#grid").kendoGrid(
               dataSource: 
                   data: [
                    Id: "1", FirstName: "Amar",LastName: "X",
                    Id: "2", FirstName: "Akbar",LastName: "Y",
                    Id: "3", FirstName: "Anthony",LastName: "Z"
                   ]
               ,
               resizable: true
            );

            var grid = $("#grid").data("kendoGrid");

            grid.resizable.bind("start", function(e) 
                if ($(e.currentTarget).data("th").data("field") == "Id") 
                  e.preventDefault();
                  setTimeout(function()
                    grid.wrapper.removeClass("k-grid-column-resizing");
                    $(document.body).add(".k-grid th").css("cursor", "");
                  );
                
            );

        );
<head>
<title>Kendo UI Snippet</title>

    <link rel="stylesheet" href="https://kendo.cdn.telerik.com/2018.2.516/styles/kendo.common.min.css"/>
    <link rel="stylesheet" href="https://kendo.cdn.telerik.com/2018.2.516/styles/kendo.rtl.min.css"/>
    <link rel="stylesheet" href="https://kendo.cdn.telerik.com/2018.2.516/styles/kendo.silver.min.css"/>
    <link rel="stylesheet" href="https://kendo.cdn.telerik.com/2018.2.516/styles/kendo.mobile.all.min.css"/>

    <script src="https://code.jquery.com/jquery-1.12.4.min.js"></script>
    <script src="https://kendo.cdn.telerik.com/2018.2.516/js/kendo.all.min.js"></script>
</head>
<body>
<p>The <strong>Id</strong> column cannot be resized:</p>
    <div id="grid"></div>
   </body>

【讨论】:

以上是关于禁用调整一列剑道网格的大小的主要内容,如果未能解决你的问题,请参考以下文章

剑道网格调整大小列不显示其标题单元格的调整大小句柄

剑道网格在插入期间启用编辑,在编辑期间禁用(仅适用于一列)

在容器 Kendo 窗口调整大小时动态更改 Kendo Grid 行的高度

剑道 UI 图表没有调整大小?

如何调整剑道 ui 组合框的大小?

3 列网格导航栏引导程序