2014-11-21 2 views
0

Моего jqGrid сценария:jqGrid Удалить строку с ID передается

<script type="text/javascript"> 

var delete_task_url = "/controller/deleteRecordAction"; 
var gr = jQuery("#grid").jqGrid('getGridParam','selrow'); 
jQuery("#grid").jqGrid({ 
    url:call_url, 
     datatype: "json", 
    height: 'auto', 
    rowNum: 20, 
    rowList: [20,30], 
    colNames:['Task#','Project ID','Task Name', 'Start Date', 'End Date', 'Created By', 'Created Date', 'Status', 'Action'], 
    colModel:[ 
     {name:'USER_ID',index:'TASK_ID', align:'center',search:false }, 
     {name:'USER_NAME',index:'TASK_NAME', search:false}, 
     {name:'ACTION',index:'link', search:false,align:'center',sortable:false, formatter: 'actions', 
     formatoptions: { 
      keys: true, 
      editformbutton: true, 
      delOptions: { url: delete_task_url} 
     }}, 
    ], 
    pager: "#page", 
    shrinkToFit :true, 
    autowidth: true, 
    viewrecords: true, 
    sortname: 'TASK_ID', 
    caption: "Task List", 
    gridComplete: function() { 
        var recs = $("#grid").getGridParam("records"); 
        $(".mycontent").remove(); 
        if (recs == 0 || recs == null) { 
         $('#grid').after("<div class='mycontent' style='color:red;text-align:center'>No Record Found</div>"); 

        } 

       } 
}).navGrid('#page',{ edit:false,add:false,del:true,search:false,cloneToTop:true,refresh:false}, 
      { 

      },{ 
      //add options 


      },{ 

         //msg: "do you really want delete this keyword? This delete affect on Eqms filter" 

       }); 
       jQuery("#grid").jqGrid('filterToolbar', { autosearch: true }); 
      var topPagerDiv = $('#grid_toppager')[0]; 
      jQuery("#grid_toppager_center", topPagerDiv).remove(); 

</script> 

Demo нижеследовал:

Working Example

у меня нет какого-либо флажка, где я могу передать UserId и основанный на этот выбор удаляет запись. Как я могу пройти UserId при нажатии на значок trash и удалить запись?

Спасибо.

ответ

1

Если USER_ID столбец содержит уникальные идентификационные данные, то вы можете просто добавить key: true свойство в определение столбца USER_ID в colModel. В результате jqGrid выведет на сервер данные в форме oper=del&id=48803. Если вы хотите иметь oper=del&id=48803, вы можете использовать prmNames: { id: "USER_ID" }option дополнительно. В результате имя параметра, которое будет опубликовано на сервере, при редактировании/удалении данных будет изменено на oper=del&USER_ID=48803.

Кстати линия var gr = jQuery("#grid").jqGrid('getGridParam','selrow'); в начале вашего кода должна быть удалена, потому что один попытаться получить значение параметра selrowперед тем будет создана сетка. Я рекомендую вам дополнительно добавить gridview: true в сетку.

+0

@Slimshadddyyy: Я включил ссылку на [option] (http://www.trirand.com/jqgridwiki/doku.php?id=wiki:options) слово. 'prmNames: {id:" USER_ID "}' - такая же опция jqGrid, как 'url',' datatype', 'height',' rowNum' и другие, которые вы используете. 'formatter: 'action'' использует [delGridRow] (http://www.trirand.com/jqgridwiki/doku.php?id=wiki:form_editing#delgridrow) внутри, чтобы удалить строку. По умолчанию используется опция 'reloadAfterSubmit'. Таким образом, сетка будет автоматически перезагружена после удаления строки. Вы можете использовать 'delOptions' для указания опций' delGridRow'. – Oleg

+0

Спасибо за ваш ответ. Но я зациклился на том, как я могу перенаправить, когда пользователь нажимает на значок «edit». 'editformbutton' установлен в значение true, и поэтому он отображает всплывающее окно вместо перенаправления на другую страницу. Хотя при удалении он работает отлично. – Slimshadddyyy

+0

@Slimshadddyyy: Добро пожаловать! Перенаправление «править» значками швов мне еще вопрос. Чтобы помочь другим пользователям найти его, нужно открыть новый вопрос. Вы должны точно описать, что хотите. 'editformbutton' не имеют никакого отношения к кнопке Delete. Если вы используете 'editformbutton: true', тогда редактирование формы будет использоваться для операции редактирования. Значение по умолчанию - 'editformbutton: false', что означает встроенное редактирование. – Oleg

Смежные вопросы