Сбор / захват массива идентификаторов отмеченных строк для удаления строк с помощью плагина Struts2-grid
У меня есть сетка для отображения данных в табличном формате следующим образом.
<s:url id="remoteurl" action="SizeGrid" namespace="/admin_side"/>
<s:url id="editurl" action="SizeCRUD" namespace="/admin_side"/>
<sjg:grid
id="gridmultitable"
caption="Size"
dataType="json"
href="%{remoteurl}"
pager="true"
navigator="true"
navigatorSearchOptions="{sopt:['eq','ne','lt','gt']}"
navigatorEdit="false"
navigatorView="false"
navigatorAddOptions="{height:280, width:500, reloadAfterSubmit:true}"
navigatorEditOptions="{height:280, width:500, reloadAfterSubmit:false}"
navigatorViewOptions="{height:280, width:500}"
navigatorDelete="true"
navigatorDeleteOptions="{height:280, width:500,reloadAfterSubmit:true}"
gridModel="gridModel"
rowList="5,10,15"
rowNum="5"
rownumbers="true"
editurl="%{editurl}"
editinline="true"
multiselect="true"
onClickGroupTopics="rowdelete"
onSelectRowTopics="rowselect"
onEditInlineSuccessTopics="oneditsuccess"
viewrecords="true"
shrinkToFit="false"
width="1045"
>
<sjg:gridColumn name="sizeId" index="sizeId" title="%{getText('size.title.id')}" key="true" frozen="true" width="200" editable="false" dataType="Long" sortable="true" search="true" sorttype="integer" searchoptions="{sopt:['eq','ne','lt','gt']}"/>
<sjg:gridColumn name="sizeCode" index="sizeCode" title="%{getText('size.title.code')}" editrules="{required: true}" width="780" editable="true" sortable="true" search="true" sorttype="text"/>
</sjg:grid>
<s:hidden name="idArray"/>
Когда ссылка удаляется, я хотел бы пройти ids
(sizeId
в данном случае) выбранных строк в виде массива.
Для этого необходимо вызвать функцию JavaScript перед тем, как будет запущен фактический запрос на удаление строки.
Я пытался с помощью следующей сырой / неполной функции JavaScript.
$.subscribe('rowdelete', function(event, data){
var checks=$("#gridmultitable").find('input[type=checkbox]');
var idArray =new Array();
alert(checks.length);
for(var i=0;i<checks.length;i++)
{
if(checks[i].checked)
{
var sizeId = checks[i].parentNode.parentNode;
var id=sizeId.id;
idArray.push($("#gridmultitable").jqGrid('getCell',id,'cellvalue'));
}
}
document.getElementById("idArray").value=idArray;
});
Но эта функция никогда не вызывается.
Есть ли способ собрать ids
(sizeId
в этом случае) выбранных / проверенных строк, чтобы они могли быть представлены в виде массива просто потому, что ids
передаются в виде строки с разделителями-запятыми, и мне не нравится собирать их с помощью некоторых функций, таких как String#split()
или же StringTokenizer
и анализировать их Long
/ Integer
на сервере.
Сетка позволяет выбрать несколько строк в виде multiselect
установлен в true
, multiselect="true"
,
1 ответ
Для selected/checked rows
часть, вот основной проект сетки api
, За multiselect=true
, вы можете получить идентификаторы выбранных строк в виде массива
$("#gridmultitable").jqGrid("getGridParam","selarrrow");