Adding value to newly added line is not working

Hi,
Im trying to add a value to LinNo column when adding a new line to the grid. But its not working. My code is down there and please help.




@(Html.EJ().Grid<object>("Recipe_FlatGrid")
            .AllowPaging()
                     .Datasource((IEnumerable<object>)ViewBag.griddata)
                          .EditSettings(edit => { edit.AllowAdding().AllowDeleting().AllowEditing().EditMode(EditMode.Batch).RowPosition(RowPosition.Bottom); })
                          .AllowPaging()
                .PageSettings(Page => Page.PageSize(150))
                 .ClientSideEvents(eve => eve.ActionComplete("Complete").CellSave("save"))
  
            .Columns(col =>
            {
                col.Field("LinNo").HeaderText("LinNo").Width("50").IsPrimaryKey(true).IsIdentity(true).AllowEditing(true).TextAlign(TextAlign.Left).Visible(true).Add();
                col.Field("RcpNo").HeaderText("RcpNo").Width("100").TextAlign(TextAlign.Left).AllowEditing(false).Visible(false).Add();
                col.Field("InputItemKey").HeaderText("InputItemKey").Width("100").TextAlign(TextAlign.Left).AllowEditing(true).Visible(true).Add();
                col.Field("ItemCode").HeaderText("ItemCode").Width("150").TextAlign(TextAlign.Left).AllowEditing(true).Visible(true).EditTemplate(a => { a.Create("create_ItemCode").Read("read_ItemCode").Write("write_ItemCode"); }).Add();
                col.Field("ItemName").HeaderText("ItemName").Width("300").TextAlign(TextAlign.Left).AllowEditing(true).Visible(true).EditTemplate(b => { b.Create("create_ItemName").Read("read_ItemName").Write("write_ItemName"); }).Add();
                col.Field("InputItemQty").HeaderText("Input<br>ItemQty").Width("100").TextAlign(TextAlign.Right).AllowEditing(true).Format("{0:n4}").Visible(true).Add();
                col.Field("UnitAbbr").HeaderText("UnitAbbr").Width("100").TextAlign(TextAlign.Left).AllowEditing(true).Visible(true).Add();
                //col.Field("OutputItemQty").HeaderText("OutputItemQty").Width("100").TextAlign(TextAlign.Left).AllowEditing(true).Visible(true).Add();
                col.Field("UCPrice").HeaderText("UCPrice").Width("100").TextAlign(TextAlign.Right).AllowEditing(true).Format("{0:n2}").Visible(true).Add();
                col.Field("Value").HeaderText("Value").Width("100").TextAlign(TextAlign.Right).AllowEditing(true).Format("{0:n2}").Visible(true).Add();
                //col.Field("OutputItemKey").HeaderText("OutputItemKey").Width("100").TextAlign(TextAlign.Left).AllowEditing(true).Visible(true).Add();
                col.Field("ItTypeCode").HeaderText("ItTypeCode").Width("100").TextAlign(TextAlign.Left).AllowEditing(true).Visible(true).Add();
                col.Field("CommitFlag").HeaderText("CommitFlag").Width(50).TextAlign(TextAlign.Center).Visible(true).Add();
            }))
<script type="text/javascript">

    function save(args) {
        var obj = $("#Recipe_FlatGrid").ejGrid("instance");
        var c = 0;

        if (args.cell.closest("tr").index() + 1 <= args.model.pageSettings.pageSize) {
            if (args.cell.index() + 1 == this.getVisibleColumnNames().length) {
                var proxy = this;
                setTimeout(function () {

                    proxy.addRecord();

                    if ($("#Recipe_FlatGrid").ejGrid("option", "pageSettings.totalRecordsCount") == null) {
                        c = 1;

                    }
                    else {
                        c = ej.max(obj.model.dataSource, "LinNo").LinNo + 1;

                    }

                }, 0);


                var obj1 = $("#Recipe_FlatGrid").ejGrid("instance");
                obj1.setCellValue(args.cell.closest("tr").index() + 1, "LinNo", c);
           
            }
        }

    }


</script>


Thank you,
Kalum



1 Reply

VN Vignesh Natarajan Syncfusion Team October 29, 2018 09:50 AM UTC

Hi Kalum, 
 
Thanks for using Syncfusion products. 
 
 
From your query, we understand that you need to update the value for PrimaryKey column while adding a record using addRecord() method. We suggest you achieve you requirement using BeforeBatchAdd event of ejGrid.  
 
Refer the below code example 
 
 
 
@(Html.EJ().Grid<object>("Recipe_FlatGrid") 
            .AllowPaging() 
                     .Datasource((IEnumerable<object>)ViewBag.datasource) 
                          .EditSettings(edit => { edit.AllowAdding().AllowDeleting().AllowEditing().EditMode(EditMode.Batch).RowPosition(RowPosition.Bottom); }) 
                          .AllowPaging() 
                .PageSettings(Page => Page.PageSize(150)) 
                 .ClientSideEvents(eve => eve.ActionComplete("Complete").CellSave("save").BeforeBatchAdd("beforeBatchAdd")) 
 
            .Columns(col => 
            { 
                .                        .                  .                  .                   .                 .                .  
            })) 
<script type="text/javascript"> 
    var c; 
    function beforeBatchAdd(args) { 
        c = ej.max(this.model.dataSource, "OrderID").OrderID + 1; 
        args.defaultData.OrderID = c; 
} 
 
.                 .                 .               .                .                .  
 
</script> 
 
     
Refer the below screenshot for the output 
 
 
 
 
 
For your convenience we have attached a sample which can be downloaded from below link 
 
 
 
 
Refer our help documentation for your reference 
 
 
 
 
please get back to us if you have further queries. 
 
Regards, 
Vignesh Natarajan 


Loader.
Up arrow icon