我有一个网格,可以在页面加载时加载数据。 我还有一个表单,提交时正确调用一个动作,但它不会在我的网格上加载新数据。
列表是正确的geting并且在我的网格模型中正确设置从我的Action类中,但在返回SUCCESS时它只返回此表单中的数据(参见下面的输出)......
{"authFirstname":null,"authLastname":null,"bookDetailsobj":null,"bookTitile":null,"get":{"authFirstname":null,"authLastname":null,"bookTitile":null,"coverId":null,"createdDate":null,"createrId":null,"description":null,"editionId":null,"editionYear":null,"id":null,"img1":null,"img2":null,"isbn":null,"languageId":null,"locationId":null,"price":null,"publisherName":null,"quantity":null,"remarks":null,"subjectId":null,"updateId":null,"updatedDate":null,"videoUrl":null},"gridModel":[{"authFirstname":"234234","authLastname":"2323423","bookTitile":"23324234234","coverId":"soft cover","description":"243234","editionId":"General Edition","editionYear":"234234","id":42,"img1":"","img2":"","isbn":"324234","languageId":"English","locationId":"as","price":2.34234E7,"publisherName":"234234","quantity":234234,"remarks":"","subjectId":"General Fiction","videoUrl":""},{"authFirstname":"2423","authLastname":"23423","bookTitile":"asdfsdaf","coverId":"soft cover","description":"","editionId":"General Edition","editionYear":"2","id":39,"img1":"","img2":"","isbn":"2","languageId":"English","locationId":"as","price":234.0,"publisherName":"2","quantity":2,"remarks":"","subjectId":"General Fiction","videoUrl":""},{"authFirstname":"3","authLastname":"3","bookTitile":"232","coverId":"soft cover","description":"","editionId":"General"}
我的jsp代码:
<sjg:grid
id="getLogs"
dataType="json"
href="%{getCurrentDateLogs}"
gridModel="listOfLogs"
onSelectRowTopics="rowselect"
loadonce="true"
reloadTopics="reloadGrid"
formIds="form2"
>
<sjg:gridColumn name="userid" index="userid" title="User ID" sortable="true" align="center"/>
<sjg:gridColumn name="username" index="username" title="Username" sortable="true"/>
<sjg:gridColumn name="logaction" index="logaction" width="600" title="Action" sortable="true"/>
<sjg:gridColumn name="date" index="date" title="Date" sortable="true" sorttype="date" align="center"/>
<sjg:gridColumn name="time" index="time" title="Time" sortable="true" sorttype="time" align="center"/>
</sjg:grid>
<s:form action="getLogsByDates" id="form2" theme="simple" cssClass="yform">
<table class="">
<tr><td>from:</td>
<td><sj:datepicker value="yesterday" id="from" name="startDate" displayFormat="dd/mm/yy" label="from" /></td>
</tr>
<tr><td>to:</td>
<td><sj:datepicker value="today" id="to" name="endDate" displayFormat="dd/mm/yy" label="to" /></td>
</tr>
<tr><td colspan="2">
<sj:submit
value="Search"
button="true"
onClickTopics="reloadGrid"
indicator="indicator"
/>
</td></tr>
</table>
</s:form>
struts.xml中
<action name="getLogsByDates" class="v.esoft.actions.bookdetails.BookdetailsAction" >
<result name="success" type="json"/>
<result name="login" type="redirect"> /index.jsp </result>
</action>
** 我不知道为什么我的输出没有显示在我的jquery网格中。请帮帮我**
答案 0 :(得分:2)
我想这就是你所需要的:
使用带有指向GridReloadTopics的onClickTopics的sj:标记,而不是使用sj:submit标记。
然后当单击sj:a时,重新加载网格,将表单提交到网格的href属性中定义的操作。
此操作必须生成一个将填充网格的JSON。
您没有在问题中显示“getCurrentDateLogs”操作。所以这是必须返回填充网格的json结果的动作。
此外,您必须考虑网格数据如何受到表单字段的影响,因此很容易
网格将所有表单字段提交给href中提到的操作,因此您必须拥有一个getter&amp;该行动的每个表格字段的setter。
与其他常规网格属性一起,现在您将收到其他表单属性,具体取决于您将填充gridModel的值。
如果你还没理解,请告诉我。
答案 1 :(得分:0)
这种方式不起作用。尝试做以下事情:
让一个动作重新调整页面,而不是json
<result name="success">page_with_the_grid.jsp</result>
page_with_the_grid.jsp
上的,使用s:url
标记来映射您的json结果:
<s:url var="jsonUrl" action="jsonAction"/>
sj:grid
中,使用href="%{jsonUrl}"
将数据填充到网格中。
如果你直接调用返回JSON
的动作,你肯定会得到一个json结果,这是你的“奇怪”输出。
答案 2 :(得分:0)
我在提交表单后找到两个网格,一个是旧的,第二个是我的搜索网格,它还包括整页
<sj:a href="%{form}" targets="result" indicator="indicator" button="true" buttonIcon="ui-icon-refresh"/>