【问题标题】:How to set struts2jquery Grid column names from JSON result of action如何从 JSON 操作结果设置 struts2 jquery Grid 列名
【发布时间】:2011-02-15 22:46:00
【问题描述】:

我有一个 Struts 2 操作返回 JSON 结果。

{"columns":["coupon","CM","CM+1","CM+2","CM+3"],"couponList":[{"coupon":3.0,"CM":"88.2323","CM+1":"89.45","CM+2":"132.3128125","CM+3":"32.82"},{"coupon":3.5,"CM":"25","CM+1":"3125","CM+2":"333","CM+3":"5"}],"Caption":"30 Yr Fixed"}

我能够用数据填充网格。如何使用 JSON 结果中返回的“columns”、“Caption”属性填充列名和标题?

我正在使用 S2Jquery 标记库。 @JSP

    <%@taglib prefix="s" uri="/struts-tags"%>
    <%@taglib prefix="sj" uri="/struts-jquery-tags"%>
    <%@taglib prefix="sjg" uri="/struts-jquery-grid-tags"%>
    <link rel="stylesheet" href="../css/jqgrid_gcpm.css">
    <link rel="stylesheet" href="../css/gcp.css">
<sj:head />

<s:url id="actionurl" action="testAction">
    <s:set var="caption" value="Caption" />
</s:url>

<sjg:grid id="gridtable" caption="%{caption}" dataType="json"
    href="%{actionurl}" pager="false" gridModel="couponList"
    rowNum="-1" rownumbers="false" altRows="true" autowidth="true"
    resizable="true" shrinkToFit="true">
    <sjg:gridColumn name="coupon" index="coupon" title="Coupon"
        sortable="false" width="30" />
    <sjg:gridColumn name="CM" title="CM" sortable="false"
        formatter="htmlFormatter" />
    <sjg:gridColumn name="CM+1" title="CM+1"
        sortable="false" formatter="htmlFormatter" />
    <sjg:gridColumn name="CM+2" title="CM+2"
        sortable="false" formatter="htmlFormatter" />
    <sjg:gridColumn name="CM+3" title="CM+3"
        sortable="false" formatter="htmlFormatter" />
</sjg:grid>

<script type="text/javascript">
    function htmlFormatter(cellValue, opts, rowObject) {
        if (cellValue == null) {
            return '';
        }
        else {
            return cellValue;
        }
    }
</script>

【问题讨论】:

  • 你是使用S2 jquery标签库还是写javascript?如果前者发布 JSP,如果后者从问题中删除任何提及 S2 并显示脚本。
  • 我正在使用 S2Jquery 标签库。

标签: jquery jqgrid struts2


【解决方案1】:

我遇到了同样的问题,我的解决方案是:

var myfirstrow = {description:"1"};
$("#cashReceiptLines").jqGrid('addRowData',"1", myfirstrow);

这是我的网格

<sjg:grid
id="cashReceiptLines"
caption="Cash receipt lines"
gridModel="cashReceiptLines"
rowNum="15"
width="860"
dataType= "local"
rownumbers="true">
<sjg:gridColumn name="description" index="description" title="Description"/>
</sjg:grid>

亚历克斯·维森特·查孔·希门尼斯 alex.chacon@software-colombia.com

【讨论】:

  • 感谢亚历克斯·维森特。我开始使用 jqGrid 本身而不是 s2j 网格。现在直接在操作中填充列的标签。这篇文章中的工作代码:link我会尝试你的方式并让你知道。再次感谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-09-26
  • 1970-01-01
  • 2012-08-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多