Как удалить выбранные строки с сервера и перезагрузить сетку?

#jqgrid #delete-row

#jqgrid #удалить строку

Вопрос:

Я пытаюсь реализовать jqgrid на своей веб-странице, но не могу обработать удаление; если пользователь выбирает несколько значений и нажимает на удалить, я хочу вызвать сервлет, который обработает удаление и вернется на страницу.

Фрагмент кода выглядит следующим образом:

 <script type="text/javascript">
function fillGridOnEvent(){
    $("#jQGrid").html("<table id="list"></table><div id="page"></div>");
    jQuery("#list").jqGrid({
        url:'<%=request.getContextPath()%>/MyServletGrid?q=1amp;action=fetchData',
        datatype: "xml",
        mtype: 'POST',
        height: 423,
        colNames:['##','Keyword','Category','ViewType',"Action"],
        colModel:[
            {name:'srNo',index:'srNo', width:30,sortable:true,align:'center'},
            {name:'Keyword',index:'Keyword', width:200,sortable:true},
            {name:'Category',index:'Category', width:100,sortable:true,align:'center'},
            {name:'ViewType',index:'ViewType', width:100,sortable:true,align:'center'},
            {name:'view',index:'view', width:113,sortable:false,align:'center'}
        ],
        multiselect: true,
        paging: true,
        rowNum:18,
        pager: $("#page"),
        loadonce:true,
        caption: "Test JQGrid"
    }).navGrid('#page',{edit:false,add:false,del:true});
}
jQuery().ready(function (){
    //fillGrid();                    rowList:[10,20,30],
});
  

Комментарии:

1. удалось ли выполнить операцию удаления с помощью jqgrid?

Ответ №1:

Получите идентификатор строки, подлежащей удалению, следующим образом

 var rowid = jQuery("#tableid").jqGrid('getGridParam', 'selrow');
  

Получите данные строки, используя следующее

 var rowdata = jQuery("#tableid").jqGrid('getRowData', rowid);
  

rowdata будет содержать ваши данные, такие как rowdata.srNo, rowdata.Ключевое слово и т.д.,

Выполните ajax-вызов вашего сервлета для удаления из вашей базы данных. Затем вызовите следующее, чтобы перезагрузить вашу сетку

 jQuery("#tableid").trigger('reloadGrid');
  

Комментарии:

1. Спасибо за быстрый ответ.. Я очень новичок в jqGrid, не могли бы вы, пожалуйста, прислать мне пример кода или веб-страницу, где они использовали jqGrid с JSP Servlet и базовыми функциями — добавлять, удалять и редактировать .. ?

2. Пожалуйста, поймите, что jqGrid выполняется на стороне клиента, а servlet — это серверная технология. Что вы можете сделать, так это выполнить вызовы ajax следующим образом. $.ajax({ url: ‘/yoururl/add’, тип: ‘get’, async: false, данные: { имя: ‘steve’}, успех: функция (данные) { оповещение («добавлено успешно»); }, ошибка: функция () { оповещение (‘Ошибка’); } «/ yoururl / add» должен быть вашим сервлетом и будет выполнять ваши вставки в базу данных. вы можете сделать остальное.