如何使用<a href=""> of an element in struts jQuery grid</a>发送ID

时间:2013-05-07 15:45:35

标签: jquery jqgrid struts2

我想在struts jQuery grid中检索并发送一个元素的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>

1 个答案:

答案 0 :(得分:0)

首先,似乎eleveId扮演你的网格本地id的角色。如果列的值具有唯一值,您可以将key="true"属性(请参阅the documentation)添加到eleveId列的定义中。之后,rowid(网格中id元素的<tr>属性值)将与eleveId列中的值相同。

如果用户选择某行网格,则将调用回调onSelectRow。在the documentation struts2中描述了“主题”。 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操作。