[CLOSED] Dynamically add row (MVC)

Threaded View

Previous Post Previous Post   Next Post Next Post
  1. #1

    [CLOSED] Dynamically add row (MVC)

    Hi, I am using Ext.net 2.5.1 with MVC for grid on desktop window. The grid is loaded with proxy, it is displayed fine. the Add button calls JS that invokes server to get a prepopulated row object and inserts it to store. no error on AddRow () action, but it adds an empty row without using the value returned from the object. Any idea what should I check?
    Thanks
    -susan zhang

    
     GridPanel.cshtml
    
    <script>
       var onAddRow = function (grid) {
                var selectedKey = -1;
               // get selectedKey value from selected row
               //..
               
                Ext.Ajax.request({
                    url: '@Url.Action("AddRow", "Grid")',
                    params: {
                        gridid: grid.id,
                        selectedKey: selectedKey,
                        isCopy: false
                    },
                    success: function (newRow) {
                        grid.store.insert(0, newRow);
                    }
                   
                });
            }
    
    </script>
    
     @(
     Html.X().Viewport()
            .Layout(LayoutType.Fit)
            .Items(
                Html.X().GridPanel()
                    .ID("gPanel" + Model.GridIDInt) //GridPanel ID
                    .Layout (LayoutType.Anchor)
                    .Frame(true)
                    .Store(    
                      Html.X().Store()
                          .ID (Model.GridID)
                          .RemotePaging(false)
                          .PageSize(20)
                          .Proxy (
                                Html.X().AjaxProxy ()
                                    .Url (Url.Action("LoadGridData", "Grid"))
                                    .Reader(Html.X().JsonReader()
                                    )
                          )
                          .Model(Model.StoreModel) //define model data schema
                          .Parameters( new { gridId = Model.GridIDInt  })
                    )      
                    .ColumnModel(Model.Columns) //define display columns
                    .TopBar(
                        Html.X().Toolbar()
                             .Items(
                                   Html.X().Button()
                                    .Text("Add")
                                    .Icon(Icon.Add)
                                    .Handler ("onAddRow (this.up('grid'))"),
                                    }),
                              ....
                            )//end toolbar items
                    )//end toolbar
                    .BottomBar(Html.X().PagingToolbar())
                    .SelectionModel(
                        Html.X().RowSelectionModel()
                            .Mode(SelectionMode.Single)
    
                    )
                    .View(
                       Html.X().GridView()
                            .StripeRows(true)
                            .LoadingText("Loading Grid Data...")
                    )
                    .Plugins(
                        Html.X().CellEditing().ClicksToEdit(1)
                    )
                    .Features(
                        Html.X().Grouping()
                                .ID("Grouping1")
                                .HideGroupedHeader(true)
                                .GroupHeaderTplString("{columnName}: {name} ({[values.rows.length]} {[values.rows.length > 1 ? \"Items\" : \"Item\"]})"),
                        Html.X().RowWrap(),
                        Html.X().Summary().ID("Total" + Model.GridIDInt)
                    )
                    
              )
        )
    
    GridController.cs
    
     public ActionResult AddRow(int gridid, int selectedKey, bool isCopy)
            {
                var gModel = new GridModel();
             
                var obj = gModel.InsertNewDataRowToCache(gridid, selectedKey, isCopy);
                return this.Direct(obj.RowObject); 
               
            }
    The AddRow() ajax response body:
    {"result":{"valuesStorage":{"cd_Account":"SampleKey1","IFAS_Contract_POP_Start_Date":"","IFAS_Contract_POP_End_Date":"","RowStatus":"IsError":false,"IsNew":true}}}
    I can see the prepopulated value in retuning obj. The obj format matches the Jason string for loading

    This is json string the proxy return to grid load :
    [{"valuesStorage":
       {"cd_Account":"SampleKey1",
         "IFAS_Contract_POP_Start_Date":"",
         "IFAS_Contract_POP_End_Date":"",
         "RowStatus":
            {"IsError":false,"IsNew":false}
     },
     
     {"valuesStorage":
       {"cd_Account":"SampleKey1",
        "IFAS_Contract_POP_Start_Date":"",
        "IFAS_Contract_POP_End_Date":"",
        "RowStatus":{"IsError":false,"IsNew":false}
    },
    {"valuesStorage":
       {"cd_Account":"SampleKey1",
        "IFAS_Contract_POP_Start_Date":"",
        "RowStatus":{"IsError":false,"IsNew":false}
    }
    ]
    Last edited by Daniil; Sep 04, 2014 at 2:53 PM. Reason: Please use [CODE] tags, [CLOSED]

Similar Threads

  1. Dynamically Checkboxes in MVC?
    By vikram in forum 2.x Help
    Replies: 6
    Last Post: Oct 18, 2013, 9:41 AM
  2. [CLOSED] Dynamically add tab
    By AmitM in forum 2.x Legacy Premium Help
    Replies: 4
    Last Post: May 20, 2013, 11:44 PM
  3. Replies: 0
    Last Post: Mar 27, 2012, 10:01 AM
  4. Replies: 2
    Last Post: Nov 23, 2011, 1:02 AM
  5. MVC - how to add buttons dynamically?
    By Marcin in forum 1.x Help
    Replies: 0
    Last Post: Aug 04, 2010, 2:30 PM

Posting Permissions