騎士の圣殿

           

          [轉(zhuǎn)]通用分頁標(biāo)簽【廢棄以前的兩個(gè)設(shè)計(jì)不合理的標(biāo)簽】

          對于以前我寫的兩個(gè)分頁標(biāo)簽,現(xiàn)在存在很多設(shè)計(jì)不合理和實(shí)現(xiàn)的不好的地方。如果有使用的,建議大家廢棄掉
          如果給大家?guī)淼恼`導(dǎo),表示抱歉。

          希望這個(gè)能給大家一些啟發(fā),我信寫得這個(gè)標(biāo)簽,在兩個(gè)項(xiàng)目中使用,還是蠻靈活和簡單的。

          代碼及其jar下載:http://www.aygfsteel.com/Files/qixin000/PagerTag_src.rar
          導(dǎo)入其中的兩個(gè)jar即可,源代碼沒有common部分,但是已經(jīng)是所有的tag源碼了,僅作參考。

          使用方法:

          public class TopicPageData extends AbstractPagerData {
              private ITopicDao topicDao;

              private int categoryId = -1;
              private String keyword = null;
              private int auditId = EAuditStatus.All.getValue();

              public TopicPageData() {
                  topicDao = ApplicationContextFactory.getContentFacotry().getTopicDao();
              }

              public IPagerData getPagerData(PagerBean pagerBean) {
                  init(pagerBean);
                  return new IPagerData() {

                      public Object execute(PagerBean pagerBean) {
                          return topicDao.selectTopicByQuery(keyword, categoryId, EAuditStatus.valueOf(auditId), pagerBean.getFrom(), pagerBean.getPageSize());
                      }

                      public int getTotalCount(PagerBean pagerBean) {
                          return topicDao.selectTopicByQueryCount(keyword, categoryId, EAuditStatus.valueOf(auditId));
                      }
                  };
              }

              protected void init(PagerBean pagerBean) {
                  if (this.getParameterValue(pagerBean, "categoryId") != null)
                      categoryId = Integer.parseInt(this.getParameterValue(pagerBean, "categoryId").toString());
                  if (this.getParameterValue(pagerBean, "keyword") != null)
                      keyword = this.getParameterValue(pagerBean, "keyword").toString();
                  if (this.getParameterValue(pagerBean, "auditId") != null)
                      auditId = Integer.parseInt(this.getParameterValue(pagerBean, "auditId").toString());

              }
          }


          繼承抽象類AbstractPagerData,實(shí)現(xiàn)其中的函數(shù)就行了
          init初始化從頁面得到的參數(shù)
          getPagerData獲得分頁后的數(shù)據(jù)函數(shù),它的返回值是一個(gè)接口,要用匿名內(nèi)部類實(shí)現(xiàn)該接口
          IPagerData接口有兩個(gè)函數(shù)要實(shí)現(xiàn),一個(gè)是getTotalCount,返回?cái)?shù)據(jù)總數(shù)量,execute返回要顯示的一頁數(shù)據(jù)。
          然后頁面就能夠得到這些數(shù)據(jù)了

          頁面的使用方法:

          <%@ taglib prefix="pager" uri="http://www.yushunkeji.cn/taglib" %>
          <pager:pagerData id="topicListId" action="com.yushunkeji.cms.admin.topic.TopicPageData" pageSize="10"
                                   dataId="topicList"/>

                  <form id="topicListForm" action="cms_topicList.action" method="post">
                      <table>
                          <tr>
                              <td>
                                  關(guān)鍵字<input type="text" name="keyword" id="keyword" value="${param.keyword}"/>
                                  分類<select name="categoryId" id="categoryId" onchange="topicListForm.submit();">
                                  <option value="-1">請選擇...</option>
                                  <c:forEach var="category" items="${categoryList}">
                                      <option value="${category.categoryId}" ${param.categoryId==category.categoryId?'selected':''}>${category.categoryTitle}</option>
                                  </c:forEach>
                              </select>
                                  審核
                                  <select name="auditId" id="auditId" onchange="topicListForm.submit();">
                                      <option value="-1">所有</option>
                                      <option value="0" ${param.auditId==0?"selected":""}>待審核</option>
                                      <option value="1" ${param.auditId==1?"selected":""}>已審核</option>
                                  </select>
                                  <input type="submit" id="query" value="查詢"/>
                                  <input type="submit" id="reset" value="重置"
                                         onclick="$('keyword').value='';$('categoryId').value=-1"/><br/>
                              </td>
                          </tr>
                      </table>
                      <table class="adminlist" cellspacing="1">
                          <thead>
                              <tr>
                                  <th width="2%" class="title"><input type="checkbox" onclick="checkAll(this,$('topicListForm'),'selectedId')">
                                  </th>
                                  <th width="5%" class="title">編號</th>
                                  <th class="title">標(biāo)題</th>
                                  <th width="8%" class="title">分類</th>
                                  <th width="5%" class="title">作者</th>
                                  <th width="4%" class="title">審核</th>
                                  <th width="10%" class="title">操作</th>
                              </tr>
                          </thead>
                          <c:forEach var="topic" items="${topicList}">
                              <tr class="row0" onMouseOver="this.className='row1'" onMouseOut="this.className='row0'">
                                  <td><input type="checkbox" id="chkTopic" name="selectedId"
                                             value="${topic.topicId}"/></td>
                                  <td>${topic.topicId}</td>
                                  <td>
                                          <%--<a href="cms_topicTemplate.action?topic.topicId=${topic.topicId}"--%>
                                          <%--target=_blank>${topic.title}</a>--%>
                                      <c:choose>
                                          <c:when test="${topic.auditStatus==0}">
                                              <a href="${base}/cms/admin/cms_topicTemplate.action?topic.topicId=${topic.topicId}"
                                                 target=_blank>${topic.title}</a>
                                          </c:when>
                                          <c:when test="${topic.auditStatus==1}">
                                              <a href="${base}${topic.htmlFullPath}"
                                                 target=_blank>${topic.title}</a>
                                          </c:when>
                                      </c:choose>
                                  </td>
                                  <td>${topic.category.categoryTitle}</td>
                                  <td>${topic.author}</td>
                                  <td>${topic.auditStatus==1?'通過':'待審'}</td>
                                  <td>
                                      <c:if test="${ex:isAllowOperation(user,topic.topicId)}">
                                          <a href="#"
                                             onclick="document.popup.show('${base}/cms/admin/cms_referenceTopic.action?topic.topicId=${topic.topicId}', 660, 600, null);">相關(guān)</a>
                                          <a href="#"
                                             onclick="window.location.href='cms_topicInfo.action?action=edit&topic.topicId=${topic.topicId}'">編輯</a>
                                          <a href="#" onclick="deleteTopic(${topic.topicId})">刪除</a>
                                      </c:if>
                                      &nbsp;
                                  </td>
                              </tr>
                          </c:forEach>
                          <tfoot>
                              <td colspan="7">
                                  <div class="pagination">
                                      <pager:pager id="topicListId"/>
                                  </div>
                              </td>
                          </tfoot>
                      </table>

                  </form>

          注意其中的的pager標(biāo)簽的使用,有兩個(gè)一個(gè)是pager:pagerData,一個(gè)是pager:pager,兩個(gè)id要一直,dataid是頁面取數(shù)據(jù)的對象id,注意foreach循環(huán)topicList部分。

          posted on 2007-11-02 15:33 最後の騎士 閱讀(206) 評論(0)  編輯  收藏 所屬分類: java技術(shù)

          導(dǎo)航

          統(tǒng)計(jì)

          常用鏈接

          留言簿(1)

          隨筆分類

          隨筆檔案

          文章分類

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 宣恩县| 自贡市| 山西省| 陆良县| 泸定县| 五大连池市| 翁源县| 洪洞县| 乌什县| 常熟市| 桐城市| 铜梁县| 比如县| 铜川市| 蒲城县| 子洲县| 丹凤县| 岑巩县| 韶山市| 崇信县| 麻栗坡县| 江津市| 湖北省| 龙江县| 新源县| 安龙县| 临沭县| 临猗县| 兴仁县| 武安市| 通道| 福清市| 周至县| 买车| 郴州市| 景泰县| 孟州市| 工布江达县| 武川县| 嵊州市| 烟台市|