我使用kenod UI创建我的Web UI。我有一个像下面的列模板
var template = "<input id='details-button' type='image' src='images/detail_button.png' ng-click='showDetals(this.dataItem)'/>#: Contact #";
我想在每次单击详细信息按钮时弹出一个窗口,并且弹出窗口的位置应在我单击的按钮的右下角。这是我目前正在做的
var popup = $("#detailsPopup");
popup.kendoPopup({
anchor: "#details-button",
origin: "bottom right",
});
但这是行不通的。每次,弹出窗口显示在第一行中按钮的右下角,而不是我单击的按钮的右下角。
检查生成的html,所有按钮的ID均相同(详细信息按钮)。因此,弹出窗口始终显示与第一个详细信息按钮相关的信息。
更新:
这是我更改的解决方案,但仍然无法正常工作。
function popupDetails(item) {
detailsGrid.kendoGrid({
columns: ...,
dataSource: item.Details
});
var anchor = "#details-button" + item.id;
var popup = $("#details-popup");
popupp.kendoPopup({
anchor: anchor,
origin: "bottom right",
});
popup.data("kendoPopup").open();
}
有人可以帮忙吗?
在列模板中使用静态ID会自然对每一行重复此操作,因此这不是可行的选择。您可以将静态ID部分(“详细信息按钮”)与Grid dataItem的ID值连接起来,这样,您将拥有真正唯一的详细信息按钮ID。
template: "<input id='details-button#: MyGridItemID #' />"
然后,更改Kendo UI Popup初始化代码以使用生成的按钮ID。
更新
Kendo UI Popup初始化语句不能使用绑定表达式(#: ... #
),因为它位于Kendo UI列模板的外部。使用dataItem
传递给showDetails
函数的对象,然后检索并myId
再次串联该anchor
设置。
更新2
看来您是通过agan遍历同一元素来创建新的Kendo UI Popup实例。我建议您销毁旧实例(这也会删除其DOM),然后将新实例附加<div>
到页面上并从中创建一个新的Popup。
我不确定这popupp
部分内容,可能是复制粘贴错误,或者您应该在那里收到JS错误。
更新3
附带说明一下,可以通过以下方式配置的单个Kendo UI Tooltip实例实现类似的行为:
table
filter
设置,它指向详细信息按钮,例如通过它们的CSS类showOn
被设定为 "click"
content
根据当前目标,使用该功能设置工具提示内容。本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句