【问题标题】:Change column width before and after edit event telerik core grid在编辑事件 Telerik 核心网格之前和之后更改列宽
【发布时间】:2021-07-11 14:59:33
【问题描述】:

我在 MVC c# 核心应用程序中使用 Telerik 网格。

我已打开内联编辑,显示编辑/取消/更新按钮的列,但是由于添加了取消/更新按钮而在打开编辑时以不太理想的方式“换行”。

我想捕获编辑功能的开始,扩大列的宽度,然后再放回去。

我已经尝试了这两个事件,但都在编辑开始时触发:

        .Events(et => et.BeforeEdit("testEdit"))
        .Events(ett => ett.Edit("testEdit2"))

但假设我通过了,我无法以良好的方式更改宽度。 我就是这样做的:

function testEdit() {
    debugger;
    alert("here start");

    var options = $("#gridAmmoChecks").data("kendoGrid").getOptions();
    options.columns[0].width = "200px";
    $("#gridAmmoChecks").data("kendoGrid").setOptions(options);

}

问题是一对,我想找到并使用正确的事件。 另外,由于某种原因,上述设置列宽非常慢,必须有更好的方法。

但是第二,像上面的网格一样不再进入“编辑”模式。 似乎 setOptions “重置”了网格,它不再允许用户编辑单元格。 知道如何按名称和索引来寻址列也很棒。

更新: 使用此链接到 Telerik 文档,我进行了以下更改,但它还没有工作: https://docs.telerik.com/kendo-ui/api/javascript/ui/grid/methods/resizecolumn

    function setExport() {
    var grid = $("#gridAmmoChecks").data("kendoGrid");

    grid.hideColumn("printFlag");
    grid.resizeColumn(grid.columns[5], 100);
   
}

在上面, hideColumn 工作,但 resizeColumn 抛出: ManageAmmoChecks:566 Uncaught TypeError: grid.resizeColumn is not a function 在 setExport (ManageAmmoChecks:566) 在 HTMLButtonElement.onclick (ManageAmmoChecks:480)

我正在使用 Telerik.UI.for.AspNet.Core (2021.1.224)

【问题讨论】:

    标签: asp.net-core telerik telerik-grid


    【解决方案1】:

    使用 setOptions() 方法会重新初始化网格,因此有可能进入无限循环。

    没有合适的事件来检测编辑何时完成。 DataBound 可以在单击更新按钮的情况下使用,但是,当关闭取消按钮时不会调用它。最好将自定义点击处理程序附加到 Edit 事件中的两个按钮。

            function onEdit(e){
              // attach click event handlers here
              
              setTimeout(function(){
                var grid = e.sender;
                grid.resizeColumn(grid.columns[5], 100);
              });
            },
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-14
      • 2019-04-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-04
      • 1970-01-01
      相关资源
      最近更新 更多