随笔 - 10, 文章 - 0, 评论 - 7, 引用 - 0
数据加载中……

DISPALYTAG的用法

1) Caption指标题
2) name:数据源
3) defaultsort:排序列,一般不需要
4) defaultorder:排序方式
5) class:表格显示的样式
6) varTotals:需要统计(总计)
7) decorator="totals":表示使用指定的decorator。现在仅在同时使用小计、合计时用到,自己也可以定制。
8) <display:column 部分:
  property指数据中的列名
  title指显示的标题
  format指数据的格式化样式,
  total表示该字段是否需要作统计。
  style="width:20%"可以设置宽度。
  也可以用
  <display:column title="请假时间">
  <fmt:formatDate value="${currentRowObject.QJSJ}" pattern="yyyy-MM-dd"/>
  </display:column>表现。
  group="1"表示进行group的字段。
9) 在表格中建立一个连接:
  <display:column title="部别">
  <a href="<c:out value="${pageContext.request.contextPath}"/>
  /holidayDefaultSearchStatView.do?type=
  <c:out value="${currentRowObject.CJDM}"/>&SYD=
  <c:out value="${currentRowObject.DWDM}"/>" target="_blank">
  <c:out value="${currentRowObject.DWMC}"/>
  </a>
  </display:column>
10) 由于该tag只有合计时,没有合计那一列,所以实现的时候以<display:footer>实现。
  可以通过totalMap对象获取合计的数据,如totalMap.colomn1获取合计的第一列数值。
11) 标题头不显示<display:setProperty name="basic.show.header" value="false" />
12) 自己定制表头:<display:caption>
   使用decorator:
   <jsp:scriptlet>
   org.displaytag.decorator.TotalTableDecorator totals =
   new org.displaytag.decorator.TotalTableDecorator();
       totals.setTotalLabel("合计");
       totals.setSubtotalLabel("小计");
       pageContext.setAttribute("totals", totals);
   </jsp:scriptlet>
实例:
<display:caption>这是表标题</display:caption>
 <display:table
  name="${model.rowToColumnStatResult}" defaultsort="1"
  class="simple" defaultorder="ascending" varTotals="totalMap">
  <display:column property="GCWZ" title="部门"/>
   <c:forEach items="${model.YList.YList}" var="yColumn">
   <c:forEach items="${model.rowToColumnStatResult[0]}"
      var="mapEntry">
    <c:if test="${mapEntry.key == yColumn}">
     <th>
       <display:column property="${mapEntry.key}"
       title="${mapEntry.key}"
       format="{0,number,####.##}" total="true"/>
     </th>
    </c:if>
   </c:forEach>
   </c:forEach>
  <display:column property="小计"
      title="小计"
      format="{0,number,####.##}" total="true"/>
 <display:footer>
 <tr>
  <td>总计</td>
  <c:forEach items="${model.YList.YColumn}" var="yColumn">
  <td><fmt:formatNumber value="${totalMap[yColumn]}"
        pattern="####.##"/>
  </td>
  </c:forEach>
 </tr>
 </display:footer>
</display:table>
 

另外一个例子:
<display:table name="${model.statResult}" class="simple"
 varTotals="totalMap">
 <display:column property="XMMC" title="项目名称" />
 <display:column property="KSRQ" title="开始日期" />
 <display:column property="FZRXM" title="负责人姓名" />
 <display:column property="GKDW" title="挂靠单位" />
 <display:column property="JFLY" title="经费来源" />
 <display:column property="XMZJF" title="项目总经费" total="true" />
 <display:column property="DNDKJF" title="当年到款经费" total="true"/>
 <display:footer>
  <tr><td colspan="5">总计</td>
   <td>
    <fmt:formatNumber value="${totalMap.column6}"
     pattern="####.####" />
   </td>
   <td>
    <fmt:formatNumber value="${totalMap.column7}"
     pattern="####.####" />
   </td>
  </tr>
 </display:footer>
</display:table>
总计某一列的方法:
${totalMap.column?}    ?为该列号
colspan="5":表示这个单元格占5个单元格
项目名称 开始日期  负责人姓名 挂靠单位 经费来源 项目总经费 当年到款经费
                                                   531      400
                                                   151       10
-------------------------------------
总计                              682     500 

posted on 2007-05-25 10:42 LiuTing 阅读(748) 评论(0)  编辑  收藏 所属分类: JSP标签


只有注册用户登录后才能发表评论。


网站导航: