.net 剑道UI网格编辑窗口未启动
我无法启动编辑弹出窗口。我在调试应用程序时没有看到任何事件发生。我的添加用户功能运行得很好。我相信我已经正确地初始化了所有东西——有人看到我做错了什么,或者为什么初始化不正确吗 你知道为什么吗.net 剑道UI网格编辑窗口未启动,.net,asp.net-mvc-4,kendo-grid,kendo-asp.net-mvc,.net,Asp.net Mvc 4,Kendo Grid,Kendo Asp.net Mvc,我无法启动编辑弹出窗口。我在调试应用程序时没有看到任何事件发生。我的添加用户功能运行得很好。我相信我已经正确地初始化了所有东西——有人看到我做错了什么,或者为什么初始化不正确吗 你知道为什么吗 @(Html.Kendo().Grid<Areas.Admin.ViewModels.UserManagement.UserManagementVM>() .Name("UserProfileGrid") .Resizable(c => c
@(Html.Kendo().Grid<Areas.Admin.ViewModels.UserManagement.UserManagementVM>()
.Name("UserProfileGrid")
.Resizable(c => c.Columns(true))
.Selectable()
.Filterable()
.Groupable()
.ToolBar(toolbar =>
{
toolbar.Template(@<text>
<input id="ButtonAddUser" type="button" class='k-button k-grid-add' value="Add User"/>
<input id="ButtonEditUser" type="button" class="k-button k-grid-edit" value="Edit user" />
@(Html.Kendo().Button()
.Name("ButtonRefreshPage")
.HtmlAttributes(new { type = "k-button" })
.Icon("history")
.Content("Refresh Page")
.Events(x => x.Click("RefreshPage")))
@(Html.Kendo().Button()
.Name("ButtonDeleteUser")
.HtmlAttributes(new { type = "k-button" })
.Icon("history")
.Content("Delete a user")
.Events(x => x.Click("DeleteUser")))
@(Html.Kendo().Button()
.Name("ButtonAbout")
.HtmlAttributes(new { type = "k-button" })
.Icon("history")
.Content("About")
.Events(x => x.Click("aboutButtonClick")))
</text>);
})
.Editable(editable => editable.Mode(GridEditMode.PopUp)
)
.Columns(columns =>
{
//columns.Bound(e => e.UserOrg).Width(25).Title("User Organization");
columns.Bound(e => e.IsApproved).Width(50).Title("Approved Status");
columns.Bound(e => e.UserName).Width(150).Title("User Name");
//columns.Bound(e => e.user).Width(150);
columns.Bound(e => e.EmailAddress).Width(150).Title("Email Address");
})
.Sortable()
.Scrollable()
.Pageable()
.Filterable()
.Selectable()
.Events(e =>
{
e.Change("packageRowSelectionChanged");
})
.DataSource(dataSource => dataSource
.Ajax()
.PageSize(20)
.Events(E => E.Error("error_handler"))
.Model(model => model.Id(e => e.UserId))
.Read(read => read.Action("ReadUsers", "UserManagement"))
.Create(create => create.Action("UserProfileCreator", "UserManagement"))
.Update(update => update.Action("UserProfileCreator", "UserManagement"))
.Destroy(destroy => destroy.Action("EditingPopUp_Destroy", "UserManagement"))
))
@(Html.Kendo().Grid())
.Name(“UserProfileGrid”)
.可调整大小(c=>c.Columns(true))
.可选()
.可过滤()
.Groupable()
.ToolBar(ToolBar=>
{
工具栏.模板(@
@(Html.Kendo().Button())
.Name(“按钮刷新页面”)
.HtmlAttributes(新的{type=“k-button”})
.图标(“历史”)
.内容(“刷新页面”)
.Events(x=>x.Click(“刷新页面”))
@(Html.Kendo().Button())
.Name(“按钮删除用户”)
.HtmlAttributes(新的{type=“k-button”})
.图标(“历史”)
.Content(“删除用户”)
.Events(x=>x.Click(“删除用户”))
@(Html.Kendo().Button())
.名称(“按钮输出”)
.HtmlAttributes(新的{type=“k-button”})
.图标(“历史”)
.内容(“关于”)
.Events(x=>x.Click(“aboutButtonClick”))
);
})
.Editable(可编辑=>Editable.Mode(GridEditMode.PopUp)
)
.列(列=>
{
//columns.Bound(e=>e.UserOrg).Width(25).Title(“用户组织”);
列。绑定(e=>e.IsApproved)。宽度(50)。标题(“批准状态”);
columns.Bound(e=>e.UserName).Width(150).Title(“用户名”);
//columns.Bound(e=>e.user).Width(150);
columns.Bound(e=>e.EmailAddress).宽度(150).标题(“电子邮件地址”);
})
.Sortable()
.Scrollable()
.Pageable()
.可过滤()
.可选()
.事件(e=>
{
e、 变更(“packageRowSelectionChanged”);
})
.DataSource(DataSource=>DataSource
.Ajax()
.页面大小(20)
.Events(E=>E.Error(“错误处理程序”))
.Model(Model=>Model.Id(e=>e.UserId))
.Read(Read=>Read.Action(“ReadUsers”、“UserManagement”))
.Create(Create=>Create.Action(“UserProfileCreator”、“UserManagement”))
.Update(Update=>Update.Action(“UserProfileCreator”、“UserManagement”))
.Destroy(Destroy=>Destroy.Action(“编辑弹出窗口_Destroy”,“用户管理”))
))
两种解决方法:
答:您可以创建一个按钮并将其链接到另一个(隐藏按钮),该按钮将调用(本机)编辑功能,或者使用editRow命令,如下所示:
函数startEditUser(){
var grid=$(“#UserProfileGrid”).data(“kendoGrid”);
var selectedRow=grid.select();
grid.editRow(selectedRow);
您的列中没有编辑命令。当然,这就是为什么编辑功能不起作用的原因。您不能将编辑和删除命令添加到工具栏中。将命令添加到网格中的列部分,如下所示:
.Columns(columns =>
{
//columns.Bound(e => e.UserOrg).Width(25).Title("User Organization");
columns.Bound(e => e.IsApproved).Width(50).Title("Approved Status");
columns.Bound(e => e.UserName).Width(150).Title("User Name");
//columns.Bound(e => e.user).Width(150);
columns.Bound(e => e.EmailAddress).Width(150).Title("Email Address");
columns.Command(command => { command.Edit(); command.Destroy(); });
})
您正在对创建和更新使用相同的操作。这可能是问题所在。不是问题--它甚至不会向控制器发送请求。在您进行更新并单击弹出窗口上的“更新”按钮之前,请求不会发送到控制器。您可能要尝试更改更新操作。无论如何,它们不能相同。E即使这个问题没有解决,你还是会改变更新操作,对吗?顺便问一下,你使用的剑道版本是什么?很有趣——好的。是的,它当然会改变。我在解决所有问题时遇到了麻烦,一定是忘了将其切换回来。只是让弹出窗口初始化是一个大问题。不确定是什么版本——我有什么方法可以让我检查吗?这完全没有必要。你做错了什么。不需要解决办法。没有——这是正确的方法,Telerik自己验证过。网格编辑功能通常驻留在row中,而不在工具栏上。为了拥有工具栏编辑功能,你必须使用editRow函数。I just意识到您的网格没有编辑命令。您不需要额外的功能。只需添加编辑命令。检查我的答案。这提供了“内联”编辑,而不是工具栏编辑命令,这正是我们的规范所要求的。