如何在jQuery网格中单击一行时调用struts2动作

时间:2012-11-08 11:26:24

标签: struts2 struts2-jquery jqgrid

我有一个jsp页面,我在Struts2 jquery网格中显示我的书籍细节。 现在我想调用一个动作并将rowid作为参数传递给动作类,点击我的Jquery网格中的一行。我还想在调用我的动作后指定我的div的目标进行刷新。

这些东西我通过<sj:submit target="targetDivToRefresh" formId="form2" button="true"/>很了解但我不知道如何执行这些任务&#34;当用户从我的struts2 jquery网格中点击一行时#34;。

请帮我解决这个问题。

我的jsp页面

    <sjg:grid
        id="bookgrid" 
        editurl="%{bookediturl}"
        navigator="true" 
        editinline="true" 
        navigatorSearch="false"
        autowidth="false"   
        width= "1550" 
        viewrecords="true"  
        navigatorRefresh="true"
        navigatorDelete="true">
    <sjg:gridColumn name="id" index="locationId" title="ID" formatter="integer" sortable="false" key="true" 
                       search="false"  editable="true"  hidden="true"   /> 
     <sjg:gridColumn name="authLastname" index="authLastname" title="AuthorLastname" sortable="true" search="true" editrules="{required: true}"
                        editable="true" edittype="text" />  
 </sjg:grid> 

1 个答案:

答案 0 :(得分:2)

试试这个:

$(function(){
    $.subscribe('rowselect', function(event,data) {
        alert(event.originalEvent.authLastname);
        $("#targetDivToRefresh").load('your-struts2-action');
    });
});

<强>更新

$("#targetDivToRefresh").load('your-struts2-action');

参考链接:Struts2 jquery plugin showcase

请确保触发此事件,如果您点击一行,我添加了测试代码alert()以确保在事件期间调用它。还有一件事,我必须告诉您,您必须使用selectrow

<sj:grid>代码中注册onSelectRowTopics="rowselect"个事件

更新

$("#targetDivToRefresh").load("<s:url value="your-struts2-action"/>"+"?id="+event.originalEvent.id);