我想在struts jQuery网格中检索并发送一个元素的id。
<sjg:grid id="gridtable"
caption="Editer Eleves"
dataType="json"
width="755"
href="%{remoteurl}"
pager="true"
gridModel="gridModel"
rowList="5,10,15,20"
rowNum="5"
rownumbers="true"
multiselect="true"
>
<sjg:gridColumn name="eleveId" title="Eleve Id" formatter="integer" sortable="false"/>
<sjg:gridColumn name="eleveNom" index="eleveNom" title="Eleve Nom" editable="true" edittype="text" sortable="true"/>
<sjg:gridColumn name="elevePrenom" index="elevePrenom" title="Eleve Prenom" editable="true" edittype="text" sortable="false"/>
</sjg:grid>
所以我做了这些,但它不起作用:
<p><a class="btn" onclick="jQuery('#gridtable').getRowData(id)['eleveId']" href="#"> Détails</a>
首先,似乎eleveId
扮演你的网格本地id的角色。如果列的值具有唯一值,则可以将key="true"
属性(请参阅the documentation)添加到eleveId
列的定义中。之后,rowid(网格中id
元素的<tr>
属性的值)将与eleveId
列中的值相同。
如果用户选择某行网格,则将调用回调onSelectRow
。在struts2的the documentation中描述了“主题”。 The example展示了如何定义和订阅相应的事件。事件处理程序中的值event.originalEvent.id
将是最后一个选定行的rowid。如果将key="true"
属性添加到列eleveId
的定义中,则值event.originalEvent.id
将与eleveId
相同。如果你不能使用key="true"
属性,那么你可以使用$("#gridtable").jqGrid("getCell", event.originalEvent.id, "eleveId")
来获取数据。
从版本4.3.2开始,jqGrid还支持回调之外的事件。例如,您可以使用事件jqGridSelectRow
来获取有关上一个选定行的完整信息:
$("#gridtable").bind("jqGridSelectRow", function (e, rowid, status, orgEvent) {
alert("rowid=" + rowid);
});
因为你只需要rowid
然后你可以从事件处理程序中删除所有可选参数
$("#gridtable").bind("jqGridSelectRow", function (e, rowid) {
alert("rowid=" + rowid);
});
在处理程序内部,您可以使用jQuery.ajax
来调用struts2操作。