我是KendoUI的新用户,我想在ListView中显示一小部分数据,但我想要一个按钮或链接,当我点击它时,我希望它显示我的项目的完整数据在窗口中,我希望有人可以帮助我。 提前谢谢。
答案 0 :(得分:1)
给出以下DataSource:
var dataSource = new kendo.data.DataSource({
transport: {
read: {
url : ...
}
},
schema : {
model: {
id : "ProductID",
fields: {
ProductID : { nullable: true },
ProductName : { type: "string" },
UnitPrice : { type: "number" },
Discontinued: { type: "boolean" },
UnitsInStock: { type: "number" }
}
}
}
});
这定义了一系列字段:ProductID
,ProductName
...我想显示ProductName
,因此我的模板是:
<script type="text/x-kendo-tmpl" id="template">
<div class="product-view k-widget ob-product-view">
<div class="edit-buttons">
<a class="k-button k-button-icontext" href="\\#" id="${uid}">
<span class="k-icon k-i-search"></span>
</a>
</div>
<dl>
<dt>Product Name</dt>
<dd>#:ProductName#</dd>
</dl>
</div>
</script>
显示一个按钮,我将该字段的uid
包含为id
。这将允许我在单击按钮时检索项目。
然后我将窗口定义为:
<div id="ob-win" class="product-view k-widget">
<dl>
<dt>Unit Price</dt>
<dd data-bind="text: UnitPrice"></dd>
<dt>Units In Stock</dt>
<dd data-bind="text: UnitsInStock"></dd>
<dt>Discontinued</dt>
<dd data-bind="text: Discontinued"></dd>
</dl>
</div>
我将其创建为:
var win = $("#ob-win").kendoWindow({
title : "Details",
visible: false
}).data("kendoWindow");
最初隐藏它。
然后我为按钮创建一个处理程序:
$(document).on("click", ".k-button-icontext", function (e) {
var uid = $(this).attr("id");
var elem = listView.dataSource.getByUid(uid);
kendo.bind($("#ob-win"), elem);
win.open().center();
});
获取被点击元素的uid
,然后使用uid
中存储的id
从DataSource获取数据,并将此数据绑定到之前创建的窗口。最后,我打开窗户,以防它关闭。
这里有一个运行示例:http://jsfiddle.net/OnaBai/YmRpa/