2014-08-29 52 views
0

我有剑道网格和填充网格如下代码。但是,当我点击编辑它弹出编辑时也显示我的主键值。解决这个问题后,我需要传递2个参数到我的操作方法来保存。任何人都可以帮我解决这个问题吗?如何将值发送到剑道网格编辑点击事件的方法

我.cshtml代码

@(Html.Kendo().Grid<abcFinal.Models.AdminCatgMgmt.catlistitems>() 
       .Name("mainCategoryGrid") 
       .Columns(columns => 
       { 
        columns.Bound(p => p.catid).Width(100).Title("ID"); 
        columns.Bound(p => p.catname).Width(100).Title("Category Name"); 
        columns.Bound(p => p.noofsubcat).Width(100).Title("No. of Sub Category"); 
        columns.Bound(p => p.catdate).Width(100).Title("Category Date"); 
        columns.Command(command => { command.Edit(); command.Destroy(); }).Width(160).Title("Modify"); 
       }) 
       .ToolBar(toolbar => toolbar.Create()) 
       .Editable(editable => editable.Mode(GridEditMode.PopUp)) 
       .Pageable() 
       .Sortable() 
       .Scrollable() 
       .HtmlAttributes(new { style = "height:500px;" }) 
       .DataSource(dataSource => dataSource 
          .Ajax() 
          .PageSize(10) 
          .Events(events => events.Error("error_handler")) 
          .Model(model => model.Id(p => p.catid)) 
          .Create(update => update.Action("AddMainCategory", "AdminOrders")) 
          .Read(read => read.Action("getMainCategory", "AdminOrders")) 
          .Update(update => update.Action("EditingPopup_Update", "AdminOrders")) 
          .Destroy(update => update.Action("EditingPopup_Destroy", "AdminOrders"))) 

我的控制器动作方法

 [AcceptVerbs(HttpVerbs.Post)] 
     public void AddMainCategory(string id, string status) 
     { 
     } 
+0

编写一个jQuery点击事件编辑按钮 – HaBo 2014-08-29 20:13:18

回答

2

这是一个示例形式剑术。 (http://demos.telerik.com/aspnet-mvc/grid/editing-popup

Kendo在MVVM中运行良好。您可以在您的项目中定义视图模型,并将其用作创建CRUD函数中的第二个参数。只要字段名称相同,它应该正确映射。

此外,作为CRUD功能请求的一部分,您应该有[DataSourceRequest] DataSourceRequest request。这应该永远是你的Kendo CRUD函数的第一个参数。

当您返回时,您也应该始终使用.ToDataSourceResult(request, Model)返回,因为它会以正确的格式将返回的数据转换为Kendo网格,以便可以使用刚刚添加的新行更新网格。如果你不这样做,你需要再次读取网格数据源以获取该项目(使用JQuery或刷新页面)。

[AcceptVerbs(HttpVerbs.Post)] 
public ActionResult EditingPopup_Create([DataSourceRequest] DataSourceRequest request, ProductViewModel product) 
{ 
    if (product != null && ModelState.IsValid) 
    { 
    productService.Create(product); 
    } 

    return Json(new[] { product }.ToDataSourceResult(request, ModelState)); 
} 

请参考Kendo演示了解更多示例。

+0

我经历了你给的链接。在编辑弹出我应该隐藏网格的第一列。你能给我快速的建议,以解决这个问题吗? – 2014-08-29 20:01:56

+0

在网格中还是弹出?对于网格,您可以不将其绑定到列。数据仍将位于该行的数据模型中。如果您想更改弹出式编辑器中的内容,您需要制作自定义编辑器模板。 – 2014-08-29 20:44:49

+0

您能否提供自定义编辑器的链接? – 2014-08-29 20:48:26