使用表单提交重新加载 struts jqGrid

我有一个 struts2 jgrid,我希望能够使用表单提交按钮刷新信息。我一直在尝试遵循这个(SO post)[动态数据重新加载到表单提交上的 struts2 jquery 网格]但是我有点困惑为什么我的过程没有按预期工作。操作 updateRPJson 返回 json 类型作为响应,网格模型具有工作所需的所有 getter/setter 和属性。


首次加载包含此网格的网页时,将调用操作方法并正确检索信息。我期待表单内部的“刷新”按钮将信息从表单发送到操作类,然后用它收到的响应重新填充网格。我认为刷新按钮会发布“reloadMyGrid”主题,然后强制网格重新加载,导致从网格的 href 调用操作。我添加了 console.log 语句来确定什么被调用了,什么没有被调用,并在我的操作类中添加了断点以查看它何时被调用。


我发现单击刷新按钮后,控制台会收到“Test2”,表明 reloadMyGrid 已“发布”(我不认为这是正确的术语),但我的操作类从未被调用。控制台中缺少“测试”表示表单本身也未提交。


如果我将表单按钮改回 an<sj:submit/>并将表单更改onSubmit为action=updateRPJson,则页面将正确信息显示为纯 json(而不是在网格内部)。这使我相信,如果在单击按钮后调用该操作,这是可行的,而不是操作本身的问题。


我意识到这是一个冗长的有点具体的案例问题,但是任何关于如何使用表单提交按钮更新 struts jqgrid 的过程的见解都将受到赞赏,因为我不完全理解我假设上面链接的帖子。


标签:


<%@ page contentType="text/html; charset=UTF-8"%>

<%@ taglib prefix="s" uri="/struts-tags"%>

<%@ taglib prefix="sj" uri="/struts-jquery-tags"%>

<%@ taglib prefix="sjg" uri="/struts-jquery-grid-tags" %>

形式:


<s:form id="getRPInstance" name="getRPInstance"  onSubmit="return reloadGrid();" >

    <div class="type-text" align="center" style="width:50%;text-align:right;float:left">

                <s:select

                   name="location"

                   id="location"

                   list="#{'unit':'Unit', 'acceptance':'Acceptance', 'integration':'Integration','production':'Production'}"

                   value="%{#session.location}"

                   required="true"/>

                <s:select

                    name="realm"

                    id="realm"

                    list="#{'int':'Internal', 'ext':'External', 'cld':'Cloud' }"

                    value = "%{#session.realm}"

                    required = "true"/>

                <div id="buttonDiv" class="type-button" align="center">

                    <sj:a button="true" onClickTopics="reloadMyGrid">Refresh</sj:a>

                </div>

    </div>

</s:form>

温温酱
浏览 87回答 1
1回答

浮云间

我已经弄清楚了,问题出在 struts 网格本身。这是通过将 loadonce 设置为 false 来解决的。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java