當柳上原的風吹向天際的時候...

          真正的快樂來源于創造

            BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
            368 Posts :: 1 Stories :: 201 Comments :: 0 Trackbacks

           

           

           

           

           

           

          Teambiz中MyTable類

           

           

           

           

           

           

           

          作者:何楊

          撰寫日期:2012年2月26日

          版本:1.00

          更新日期:  

           

           

          第一部分:功能說明

          幫助程序員更輕松的操作前臺的表格。

          第二部分:核心組件

          名稱

          路徑

          說明

          MyTable

          teambiz\WebRoot\page\js\myTable.js

          一個JavaScript類,用于操作表格。實際上,它代表的是table的tbody部分,而不包括caption,thead,tfoot。

          MyTable

          同上文件的同名函數

          這是MyTable類的構造函數,傳入tbody的id,得到表格的tbody部分。

          clear

          同上文件的同名函數

          一次性刪除tbody的所有行。

          在查詢開始前基本都有這一步以清除以往的數據。

          removeFirstRow

          同上文件的同名函數

          刪除tbody的第一行。

          這個函數在實際中使用很少。

          getRowCount

          同上文件的同名函數

          得到tbody中所有行的個數。

          當需要計算當前顯示多少行時可以用到。

          appendRow

          同上文件的同名函數

          tbody底部添加一行,并且給奇偶行賦予不同的樣式。

          逐行往表格中添加數據時常用到它。

          removeRow

          同上文件的同名函數

          刪除tr的id為傳入參數的行。

          當刪除對象成功時需要調用這一函數。

          refreshRowColor

          同上文件的同名函數

          給奇偶行賦予不同的樣式。

          一般在appendRow和removeRow中被調用,外界也可主動調用。

           

          第三部分:實際運用代碼說明

          以下代碼請參見teambiz\WebRoot\page\jsp\relation\sent\javascript.jsp中search函數。

          1. 得到表格并清除原有行

          var userTable=new MyTable("userTable");

          userTable.clear();

          以上代碼就是新建一個MyTable對象并清除原有行的過程,MyTable構造函數接受一個tbody的id,請與頁面中tbody的實際ID相對應。

           

          2. 向表格添加行

          userTable.appendRow(createStartSearchRowBy("page/img/waiting.gif","開始查詢已經發送的聯系..."));

          userTable.appendRow(createNgRowBy("沒有查詢到已經發送的聯系."));

          以上代碼就是向tody中添加一個tr的過程,至于createStartSearchRowBy,createNgRowBy兩個函數我們將在后文詳述。

           

          以上代碼路徑:teambiz\WebRoot\page\js\changePage.js

           

          3. 向表格中添加一個完整的行。

          var arr=tableDatas[i];                     

          // 創建行

          var row=document.createElement("tr");           

                                 

          // 加入復選框

          var checkBox=document.createElement("input");

          checkBox.setAttribute("type","checkbox");

          checkBox.setAttribute("id",arr[0]);

           

          var td=document.createElement("td");

          td.appendChild(checkBox);                      

          row.appendChild(td);        

           

          row.appendChild(createTextTd(arr[1]));

          row.appendChild(createTextTd(arr[2]));

          row.appendChild(createTextTd(arr[3]));

          row.appendChild(createTextTd(arr[4]));

          row.appendChild(createTextTd(arr[5]));

          row.appendChild(createTextTd(arr[6]));

           

          userTable.appendRow(row);

          以上代碼完整顯示使用DOM創建tr以及一個個td,并往td中添加對象的過程。根據實際情況的不同,我們可能會往行row中添加文本,鏈接,圖片,圖片鏈接等對象,TeamBiz為此類事務設計了一批函數以簡化代碼編寫,這將在后面的文章詳述。

           

          以上代碼位置:teambiz\WebRoot\page\jsp\relation\sent\javascript.jsp中addDatasToTable函數。

           

          4.頁面表格

          <table class="stocktable" width="100%" cellspacing="0">

                      <caption>

                                  <select id="pageSizeCbo" onchange='fetchDatas(0)'>

                                              <option value="20">20</option>

                                              <option value="50">50</option>

                                              <option value="100">100</option>

                                              <option value="1000">1000</option>

                                  </select>

                      總記錄數<span id="recordCount">0</span> 總頁數<span id="pageCount">0</span> 當前第<span id="currentPage">0</span>頁 <span id="pageData">0</span></caption>

                      <thead>

                                  <tr>

                                              <th width="28"><input type="checkbox" id="selectAllChk" onclick="selectAllCheckBox()"/></th>

                                              <th width="17%">發送用戶</th>

                                              <th width="16%">接收用戶</th>

                                              <th width="16%">接收用戶郵件</th>

                                              <th width="16%">接收所屬組名</th>

                                              <th width="16%">接收所屬公司</th>

                                              <th width="16%">聯系狀態</th>

                                  </tr>

                      </thead>

                      <tbody id="userTable">

                                  <tr class="odd">

                                              <td colspan="40"><img src='page/jsp/relation/create/img/waiting.gif'/> 查詢中,請稍候...</td>

                                  </tr>

                      </tbody>

                       <tfoot>

                                  <tr>

                                              <td colspan="40" align="right" width="100%">

                                                          <div class="submitDiv">

                                                                      <label for="gotoPageBtn">&nbsp;</label>

                                                                      <input type='button' name='gotoPageBtn' onchange='gotoPage()' value='轉到' />第<input type='text' id='pageIndexTxt' onchange='gotoPage()' size='1' />頁&nbsp;頁碼:<span id="footPageData"></span>

                                                          </div>

                                              </td>

                                  </tr>

                      </tfoot>

          </table>

          以上代碼中,紅色粗體部分的“userTable”就是需要往MyTable構造函數中傳入的參數,而黑色粗體部分就是MyTable類諸函數實際操作的區域。

          以上代碼位置: teambiz\WebRoot\page\jsp\relation\sent\content.jsp

           

          第四部分:使用步驟

          步驟

          說明

          參照

          載入MyTable類

          teambiz中,這一載入一般放在style.css中。

          <script src="page/js/myTable.js" type="text/javascript"></script>

          創建MyTable對象

          由于作用域的不同,這一過程可能會使用多次,但應該避免使用全局的myTable對象。

          var table=new MyTable(“tableID”);

          操作MyTable對象

          使用teambiz\WebRoot\page\js\myTable.js中定義的多個函數操作表格對象,如果這些函數不能滿足您的需求,可以參照原有行數的模式來創建新的函數。

           

           

           

           

          第五部分:小結

          表格是前臺程序操作的主要對象之一,將表格的常用操作加以歸納綜合,就形成了MyTable類,它能減少重復代碼,減少出錯的可能行,減輕勞動和增加代碼的一致性,如果我們在編寫程序時多加歸納總結,還會誕生出更多相似的類出來。

           

          posted on 2012-02-29 10:37 何楊 閱讀(345) 評論(0)  編輯  收藏 所屬分類: Teambiz
          主站蜘蛛池模板: 卓尼县| 珠海市| 庄浪县| 建始县| 柳州市| 桃源县| 南投县| 滨州市| 南丹县| 土默特左旗| 江西省| 南华县| 香港 | 昌图县| 赞皇县| 娄底市| 共和县| 东乡族自治县| 赤峰市| 福清市| 宁德市| 大冶市| 莲花县| 河东区| 兴安盟| 丽江市| 清丰县| 体育| 云龙县| 松阳县| 康保县| 武冈市| 绥芬河市| 呼图壁县| 新津县| 青海省| 通州区| 庆安县| 永安市| 临清市| 原阳县|