I developing a web application using JSP & Servlet (IDE: Eclipse, Database: Oracle10).
I am using JQGRID to display data in tabular format. I also want functionality of Add, Edit, Delete in JQGRID. So far I have completed Edit Functionality.
Now I want Delete functionality, the problem is that I am not able to pass data from JQGRID to servlet.
Following is my source code:
jQuery("#list10_d2").jqGrid({
height: "100%",
url:'ProtocolJGridServChildStages?q=2&action=protStages',
datatype: "xml",
colNames:['Sr. No.','PROTOCOL_ID', 'STAGE_ID', 'DESCRIPTION'],
colModel:[{name:'srNo',index:'srNo', width:35,sortable:true},
{name:'PROTOCOL_ID',index:'PROTOCOL_ID', width:100,sortable:false},
{name:'STAGE_ID',index:'STAGE_ID', width:100,sortable:false},
{name:'DESCRIPTION',index:'DESCRIPTION', width:150,sortable:false,editable:true}
],
rowNum:5,
rowList:[2,4,10],
pager: '#pager10_d2',
sortname: 'PROTOCOL_ID',
viewrecords: true,
sortorder: "asc",
multiselect: true,
editurl: "ProtocolJGridServChildStages?action=protocolStageEdit",
caption:"CRM_PROT_STAGES",
onSelectRow: function(ids)
{
if(ids && ids!==lastsel)
{
var ret = jQuery("#list10_d2").jqGrid('getRowData',ids);
protID = ret.PROTOCOL_ID;
alert(protID);
stageID = ret.STAGE_ID;
alert(stageID);
jQuery("#list10_d2").jqGrid('setGridParam',{}, {editurl:'ProtocolJGridServChildStages?action=protocolStageEdit&protID='+protID+'&stageID='+stageID});
jQuery('#list10_d2').jqGrid('restoreRow',lastsel);
jQuery('#list10_d2').jqGrid('editRow',ids,true);
lastsel=ids;
}
}
});
jQuery("#list10_d2").jqGrid('navGrid','#pager10_d2',{add:true,edit:true,del:true},{width:500},{width:500,url: 'ProtocolJGridServChildStages?action=protocolStageAdd&protID='+protID, closeAfterAdd: true},{mtype: 'GET',url: 'ProtocolJGridServChildStages?action=protocolStageDelete&protID='+protID});
jQuery("#ms1").click( function() {
var s;
s = jQuery("#list10_d2").jqGrid('getGridParam','selarrrow');
alert(s);
});
I am getting protID value undefined in my DeleteServlet.
You use
protIDin theurlin the wrong way. The value ofurloption used for Delete operation will be set once during executing of the call ofnavGrid. At the moment you not yet set any value for the variableprotID. You can fix the code you can use one from the following ways:onclickSubmit,delData,beforeSubmitorserializeDelData.I am wounder a little that you use
mtype: 'GET'option for delete operation. Typically one use HTTP POST or HTTP DELETE in the case. If you really needmtype: 'GET'you can replaceparameter of
navGridtoor alternatively
If you do consider to use
mtypeother asGET, but will need to setprotIDas part of URL you can modifyurloption dynamically inside ofonclickSubmitorbeforeSubmitcallback. For exampleYou can choose yourself the way which better corresponds your requirements.