剃刀 - 可编辑网格 - 什么方法?

时间:2011-07-07 08:08:38

标签: razor grid edit

我非常想知道并且还不知道该决定使用什么。 所以我想要网格并编辑它的行数据。

我正在使用MVC3 Razor,我知道这些可能性: - jqGrid Razor - 淘汰网格剃刀 - 我不知道如何使其成为可编辑的网格?它是否可能,或者仅仅是为了显示数据。 - 网格,剃刀

我不喜欢使用Telerik控件! 您是否会建议我制作可编辑网格的最佳方法是什么?如果我不需要可编辑的网格怎么办?为什么要使用其中一种或另一种方式? Razor页面中的所有内容。

3 个答案:

答案 0 :(得分:1)

ShieldUI's grid还支持许多编辑模式,场景以及在本地或任何远程端点发送更新。

可以在这里找到一个很好的例子:

http://demos.shieldui.com/mvc/grid-editing/editing-restful-web-service

答案 1 :(得分:0)

jqGrid绝对支持编辑,您可以在http://www.trirand.com/blog/jqgrid/jqgrid.html查看一些示例,或阅读http://www.trirand.com/jqgridwiki/doku.php?id=start处的文档

答案 2 :(得分:0)

使用以下代码进行 编辑 ,并与添加删除相同。

查看

@(Html.Telerik().Grid<CustomerOrderDetails>()
                       .Name("gvCustomerOrderDetails")
                       .DataKeys(keys => keys.Add(k => k.ItemID))
                       .Columns(column =>
                       {
                           column.Bound(i => i.ItemID).Hidden(true);
                           column.Bound(i => i.SalesSequenceNumber).Hidden(true);
                           column.Bound(i => i.ItemSequence).Hidden(true);
                           column.Bound(i => i.ItemName).Title("Item Name").ReadOnly();
                           column.Bound(i => i.Quantity).Title("Order Quantity").HtmlAttributes(new { @class = "gridTextAlignRight" });
                           column.Bound(i => i.ItemUnitPrice).HtmlAttributes(new { @class = "gridTextAlignRight" }).ReadOnly();
                           column.Bound(i => i.ItemUnitPrice).Hidden(true);
                           column.Bound(i => i.TotalPrice).HtmlAttributes(new { @class = "gridTextAlignRight" }).ReadOnly();
                           column.Command(command =>
                           {
                               command.Edit().ButtonType(GridButtonType.Image);
                           }).Width(80).Title("Commands");
                       })
                       .Selectable()
                       .DataBinding(dbBindings =>
                           {
                               dbBindings.Ajax().Select("__CustomerOrderDetailsGridBind", "CustomerInfo")
                                                .Update("__CustomerOrderDetailsUpdate", "CustomerInfo");
                           })
                       .ClientEvents(events =>
                        events.OnDataBinding("onDataBinding")
                              .OnError("onError")
                       )
                       .Scrollable(scroll => scroll.Height(300))

                 )

对于 控制 使用以下代码

    [AcceptVerbs(HttpVerbs.Post)]
    [GridAction]
    public ActionResult __CustomerOrderDetailsUpdate(CustomerOrderDetails objCustomerOrderDetails)
    {
        SalesItem objSalesItem = new SalesItem();
        objSalesItem.SalesSequenceNumber = objCustomerOrderDetails.SalesSequenceNumber;
        objSalesItem.ItemSequence = Convert.ToByte(objCustomerOrderDetails.ItemSequence);
        objSalesItem.ItemID = objCustomerOrderDetails.ItemID;
        objSalesItem.Quantity = objCustomerOrderDetails.Quantity;
        objSalesItem.ItemUnitPrice = objCustomerOrderDetails.ItemUnitPrice;
        objSalesItem.TotalPrice = objCustomerOrderDetails.ItemUnitPrice * objCustomerOrderDetails.Quantity;
        objSalesItem.SalesDate = DateTime.Now;
        objSalesItem.EntryBy = objLoginHelper.LogInID;
        objSalesItem.EntryDate = DateTime.Now;

        customerDal.UpdateSalesItem(objSalesItem);

        return View(new GridModel<CustomerOrderDetails>
        {
            Data = customerDal.CustomerOrderDetailsInfo(objCustomerOrderDetails.SalesSequenceNumber, Helper.Active)
        });
    }

您还可以将模型特定类用于 添加 编辑 &amp;的 删除即可。这里 ReadOnly() 用于未编辑的列。如果您需要控件中的列值,请使用不带 ReadOnly() 的相同列,只需 隐藏

我认为所有人都喜欢使用此代码。