如何隐藏在detailInit(子网格)中出现的Kendo Tooltip?
问题修复方案
这个问题是因为Tooltip的默认匹配规则没有区分主网格和子网格的单元格,以下是3种可直接落地的实现方案:
方案1:调整Tooltip过滤规则,仅作用于主网格
初始化Tooltip时增加选择器限制,只匹配主网格内的目标列单元格,子网格节点不会命中规则:
// 原错误写法(没有区分主/子网格) $("#grid").kendoTooltip({ filter: "td[role='gridcell'][aria-label*='First Name']", content: function(e) { return "自定义提示内容"; } }); // 修改后写法(仅匹配主网格单元格) $("#grid").kendoTooltip({ // 通过k-master-row类限制只命中主网格的行 filter: ".k-master-row td[role='gridcell'][aria-label*='First Name']", content: function(e) { return "自定义提示内容"; } });
如果你的主网格没有自带k-master-row类,也可以给主网格手动加自定义类名main-grid,过滤规则修改为.main-grid td[aria-label*='First Name']即可。
方案2:在内容回调中判断节点归属,子网格返回空
如果不想修改过滤规则,可以在生成提示内容前判断当前单元格所属的网格类型,子网格直接返回空内容,Tooltip就不会渲染:
$("#grid").kendoTooltip({ filter: "td[role='gridcell'][aria-label*='First Name']", content: function(e) { // 判断当前单元格是否属于子网格 const isChildGrid = $(e.target).closest(".k-grid").parent().hasClass("k-detail-cell"); if (isChildGrid) return ""; // 主网格正常返回提示内容 return "自定义提示内容"; } });
方案3:给子网格列加专属类,过滤时直接排除
初始化子网格时,给子网格的First Name列加自定义类,Tooltip过滤规则直接排除这类单元格:
// 子网格列配置 columns: [ { field: "FirstName", title: "First Name", // 新增自定义类标识子网格列 attributes: { class: "child-grid-name-col" } } ] // Tooltip过滤规则排除子网格列 $("#grid").kendoTooltip({ filter: "td[role='gridcell'][aria-label*='First Name']:not(.child-grid-name-col)", content: function(e) { return "自定义提示内容"; } });
内容的提问来源于stack exchange,提问作者dontbannedmeagain
相关产品推荐
相关产品推荐

