All*_*ech 7 javascript jquery kendo-ui kendo-grid
我使用kenod UI来创建我的Web UI.我有一个列模板,如下所示
var template = "<input id='details-button' type='image' src='images/detail_button.png' ng-click='showDetals(this.dataItem)'/>#: Contact #";Run Code Online (Sandbox Code Playgroud)
我想在每次单击详细信息按钮时弹出一个窗口,弹出窗口的位置应该在我单击的按钮的右下角.这就是我现在所做的
var popup = $("#detailsPopup");
popup.kendoPopup({
anchor: "#details-button",
origin: "bottom right",
});Run Code Online (Sandbox Code Playgroud)
但它不起作用.每次,弹出窗口显示在第一行按钮的右下角,而不是我点击的按钮的右下角.
检查生成的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();
}Run Code Online (Sandbox Code Playgroud)
有人可以帮忙吗?
在列模板中使用静态 ID 自然会为每一行重复它,因此这不是一个可行的选择。您可以将静态 ID 部分(“详细信息按钮”)与网格数据项的 ID 值连接起来,这样您将拥有真正唯一的详细信息按钮 ID。
template: "<input id='details-button#: MyGridItemID #' />"
Run Code Online (Sandbox Code Playgroud)
然后,更改 Kendo UI Popup 初始化代码以使用生成的按钮 ID。
更新
Kendo UI Popup 初始化语句不能使用绑定表达式 ( #: ... #),因为它放置在 Kendo UI 列模板之外。使用dataItem传递给函数的对象并再次showDetails检索并连接设置。myIdanchor
更新2
看来您正在一遍又一遍地从同一元素创建一个新的 Kendo UI Popup 实例。我建议您销毁旧实例(这也会删除其 DOM),然后将新实例附加<div>到页面并从中创建新的 Popup。
我不确定这popupp部分,它可能是复制粘贴错误,或者您应该在那里收到 JS 错误。
更新3
附带说明一下,可以使用按以下方式配置的单个 Kendo UI Tooltip 实例来实现类似的行为:
tablefilter集合,指向详细按钮,例如通过他们的 CSS 类showOn被设定为"click"content函数根据当前目标设置工具提示内容。http://docs.telerik.com/kendo-ui/api/javascript/ui/tooltip