Search code examples
jqgrid

How to access id of onSelectRow in delOptions action method in jqGrid


//Hidden Input element

//my grid details: $("#jqGrid").jqGrid({ url: '@Url.Action("EditedEventData", "Calendar" ,new{ })' + '?CountryId=' + @countryid + '&CityId=' + @cityid , async: true, datatype: "json", colModel: [

            //label: "Edit Actions",
            name: "",
            width: 100,
            formatter: "actions",
            formatoptions: {
                keys: true,
                edit: true,
                add: true,
                del: true,
                editOptions: {},
                addOptions: {},
                delOptions: {    

                    url:'@Url.Action("RemoveEvent", "Calendar")'+ '?HolidayId='+document.getElementById('hdnEventId').value ,
                    //mtype: 'POST',
                }// **here it is showing hdnEventId value empty**
            }
        }
        ],
        onSelectRow : function(id){ 
            console.log('inside onSelectRow');
            alert(id);                
            document.getElementById('hdnEventId').value=id;
            alert(document.getElementById('hdnEventId').value);
        },
        sortname: 'EventDate',
        loadonce: true,
        width: 750,
        height: 200,
        rowNum: 150,
        pager: "#jqGridPager"

    });

I am unable to access id of onSelectRow in delOptions action method. So thought of taking a hidden html element and store the value but it is showing empty. Thanks in advance


Solution

  • When a delete is performed the id is automatically send to the server. The parameter which is obtained via post is named id.

    If you additionally want to fill a id on deleting a rows you can use some events to fill the field you want. These are described here. In the same documentation see the chapter What is posted to the server .

    To fill the id in another field when a row is deleted I think the good choice is to use either serializeDelData or afterSubmit events - see the events on the same link.

    When use these events the parameter postdata contain the id. By example in serializeDelData (set this in delOptions) this can look like

    serializeDelData : function( postdata ) {
        var id = postdata.id;
        document.getElementById('hdnEventId').value=id;
        return postdata;
    }
    

    Remember both events should return some params