我在我的项目中为10个产品创建了剑道网格。当我点击剑道网格中显示的productname时,我希望弹出包含产品详细信息的剑道窗口。
我已经查看了剑道网格的演示,但我不想编辑所选产品的详细信息,也不想使用示例和演示中所示的“详细信息”按钮的单独列。
我还查看了剑道ui的音乐商店演示,但我无法理解它的代码,因为它在jQuery中,我正在使用asp。net mvc与我的项目的razor语法
注意:我希望窗口只在我点击产品名称并显示其详细信息时出现。
您可以使用详细模板来实现它。
<script>
var wnd,
detailsTemplate;
$(document).ready(function () {
var grid = $("#grid").kendoGrid({
dataSource: {
pageSize: 20,
data: createRandomData(50)
},
pageable: true,
height: 550,
columns: [
{ field: "FirstName", title: "First Name", width: "140px" },
{ field: "LastName", title: "Last Name", width: "140px" },
{ field: "Title" },
{ command: { text: "View Details", click: showDetails }, title: " ", width: "180px" }]
}).data("kendoGrid");
wnd = $("#details")
.kendoWindow({
title: "Customer Details",
modal: true,
visible: false,
resizable: false,
width: 300
}).data("kendoWindow");
detailsTemplate = kendo.template($("#template").html());
});
function showDetails(e) {
e.preventDefault();
var dataItem = this.dataItem($(e.currentTarget).closest("tr"));
wnd.content(detailsTemplate(dataItem));
wnd.center().open();
}
</script>
<script type="text/x-kendo-template" id="template">
<div id="details-container">
<h2>#= FirstName # #= LastName #</h2>
<em>#= Title #</em>
<dl>
<dt>City: #= City #</dt>
<dt>Birth Date: #= kendo.toString(BirthDate, "MM/dd/yyyy") #</dt>
</dl>
</div>
</script>
去这个小提琴上做一个工作演示
[更新]以下是在单击产品名称时显示窗口的代码片段
<script>
var wnd,
detailsTemplate;
$(document).ready(function () {
var grid = $("#grid").kendoGrid({
dataSource: {
pageSize: 20,
data: createRandomData(50)
},
pageable: true,
height: 550,
columns: [
{ field: "FirstName", title: "First Name", width: "140px",attributes: { "class": "FirstName"} },
{ field: "LastName", title: "Last Name", width: "140px" },
{ field: "Title" }]
}).data("kendoGrid");
wnd = $("#details")
.kendoWindow({
title: "Customer Details",
modal: true,
visible: false,
resizable: false,
width: 300
}).data("kendoWindow");
detailsTemplate = kendo.template($("#template").html());
$('#grid').on("click", ".FirstName", function (e) {
e.preventDefault();
var dataItem = $("#grid").getKendoGrid().dataItem($(e.currentTarget).closest("tr"));
wnd.content(detailsTemplate(dataItem));
wnd.center().open();
});
});
</script>
<script type="text/x-kendo-template" id="template">
<div id="details-container">
<h2>#= FirstName # #= LastName #</h2>
<em>#= Title #</em>
<dl>
<dt>City: #= City #</dt>
<dt>Birth Date: #= kendo.toString(BirthDate, "MM/dd/yyyy") #</dt>
</dl>
</div>
</script>
工作演示在这里
您可以使用:
$('#grid').on("click", "tr.k-state-selected", function (e) {
// open window here
// you have i.e. Id here $('#grid').dataItem($('#grid').select()).Id
});
为此,必须在网格配置中设置选项可选:“行”
。否则,您可以仅使用:
$('#grid').on("click", "tr", function (e) { ... }
我正在使用Kendo网格,其中有几个列用于概览行数据。当用户单击添加/编辑按钮时,弹出窗口将显示一些附加数据,其中包括一些复选框。 我在将复选框与当前MVVM模型绑定时遇到问题,因为在添加新行时,Kendo将模型视为变量,而不是数组。这会导致在选中一个复选框(单击)时选中多个复选框。在看了剑道MVVM之后,我打算得到当前弹出窗口的MVVM模型,以便操作一些数据,但没有成功。因此,我将在以下方面寻求
我想在显示(打开)弹出编辑器之前得到确认,单击剑道网格中的编辑命令按钮与删除确认相同。 我使用了网格的编辑事件。它成功地显示了确认对话框,但其后面也打开了弹出编辑器窗口。 是否有任何方法我只能在用户确认后显示弹出编辑器窗口?
当我添加新行并在编辑eventHandler(model.set(“port”,“udp”))中设置模型属性的值时,网格弹出mvvm绑定似乎失败,但选择输入不会更改值,并且从调试器控制台显示该事件。模型的属性值保持不变。 但是在我手动选择端口后,我尝试model.set(端口,tcp),它工作! 我混淆了输入元素的值字段绑定机制和剑道模型绑定的时间。。。 Html部分如下所示: 如下所示:
我有一个剑道网格和一个按钮栏。单击按钮时,我希望它调用一个javascript函数,并将行的数据作为参数。这是我到目前为止所拥有的
我见过其他类似的问题,但似乎到目前为止我做的一切都是对的,没有任何效果。正如标题所述,对于我的一个专栏,我试图使用dropdownlist作为弹出窗口中的字段。 指数cshtml: 然后在/Views/Shared/EditorTemplates DeptDropdown的内部。cshtml: 然后是版本\实用程序\模型的内部。反恐精英:
我正在使用剑道用户界面ASP。NET MVC网格(Razor)在Ajax模式下使用弹出式编辑器。 比如说:客户有订单 应用程序的用户转到显示所有客户的网格。允许用户添加/编辑/删除客户(及其订单)。但是当用户点击编辑,弹出编辑器出现时,我想加载订单。我不想急于加载订单,因为一个客户可能有很多订单,用户可能根本不会编辑任何客户。 看起来这应该是一件简单的事情。我浏览了所有论坛/问题。我找不到这样的例