gpt4 book ai didi

javascript - 如何在展开和折叠时自动调整 Kendo TreeList 列?

转载 作者:行者123 更新时间:2023-12-03 00:58:26 27 4
gpt4 key购买 nike

我有一个剑道树列表。折叠事件绑定(bind)到 onCollapse() 方法,展开事件绑定(bind)到 onExpand() 方法。

换句话说:第一列由级别组成。默认级别为 0,默认展开并显示(所有子级)级别 1 的所有行。展开级别 1 行时,将显示其子级(级别 2)。同时,该列必须拉伸(stretch)一点(以显示下一个级别的编号)。当展开另一个级别 1 的行时,该列不需要拉伸(stretch),但当展开级别 2 的行时,第一列必须再次拉伸(stretch)以显示级别 3,依此类推。

因此,我使用treeList.autoFitColumn(0)。每当我扩展相同级别的行时,这都会导致每次扩展后自动适应(这不是我所期望的,因为扩展相同级别意味着列在第一次扩展后增长,但在第二次扩展后不增长。

另一种方法是手动更改宽度,但我找不到类似 treeList.columns[0].setWidth(x) 的内容。

最佳答案

您所看到的行为之所以发生,是因为 collapseexpand 事件在内容宽度实际更改之前触发。

为了避免这种情况,您可以采取的措施是“延迟”自动调整,直到当前代码完成运行之后。您可以通过使用超时值为 0 的 setTimeout 来实现此目的。这会将函数的执行置于执行队列末尾的 setTimeout 内。

查看演示片段。

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<title>Kendo UI Snippet</title>

<link rel="stylesheet" href="https://kendo.cdn.telerik.com/2018.3.911/styles/kendo.common.min.css"/>
<link rel="stylesheet" href="https://kendo.cdn.telerik.com/2018.3.911/styles/kendo.rtl.min.css"/>
<link rel="stylesheet" href="https://kendo.cdn.telerik.com/2018.3.911/styles/kendo.silver.min.css"/>
<link rel="stylesheet" href="https://kendo.cdn.telerik.com/2018.3.911/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.3.911/js/kendo.all.min.js"></script>
</head>
<body>

<div id="treeList"></div>
<script>
$("#treeList").kendoTreeList({
resizable: true,
columns: [
{ field: "Name" },
{ field: "Text" }
],
dataSource: [
{ id: 1, Name: "Name 1", Text: "Sample text 1", parentId: null },
{ id: 2, Name: "Name 2", Text: "Sample text 2", parentId: null },
{ id: 3, Name: "Name 3", Text: "Sample text 3", parentId: 1 },
{ id: 4, Name: "Very long name 4", Text: "Sample text 4", parentId: 2 }
],
expand: function(e) {
setTimeout(() => treeList.autoFitColumn(0), 0);
},
collapse: function(e) {
setTimeout(() => treeList.autoFitColumn(0), 0);
}
});
var treeList = $("#treeList").data("kendoTreeList");
treeList.autoFitColumn(0);
</script>
</body>
</html>

关于javascript - 如何在展开和折叠时自动调整 Kendo TreeList 列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52722027/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com