在之前發布的Varibale控件已經可以向客戶端傳送DataTable數據,但是,如果該DataTable有幾千行( 甚至更多)時,使用Variable會直接將所有數據傳到客戶端,這顯然是不現實的。本文所要介紹的 LDataTable控件是一個適合用於向客戶端傳送含有大數據量的DataTable的控件,其實現的原理如下:
根據客戶端的需求以頁為單位從服務器讀取要傳送的DataTable中的行,讀取到客戶端之後,就將讀取到 的這部分數據緩存到客戶端.
例如:
有一個具有5000行數據的DataTable,假如以100行為一頁(則總共有50頁),當客戶端需要讀取第1~50行( 這50行數據在第1頁中)時,LDataTable控件就向服務器發送請求讀取第1頁(盡管不足1頁,仍需讀取1頁),然 後將該頁(即1~100行)緩存在客戶端,如果之後客戶端需要讀取1~100行中的某一行時,只需中緩存中讀取而 不需要從服務器讀取.
下面通過實現無刷新翻頁的例子說明如何使用LDataTable控件
無刷新翻頁例子源代碼下載
1.實現功能
在服務器上有一個保存了通訊錄信息的XML文件,裡面保存了6000多行數據,現在要在浏覽器中以每頁 10行的方式浏覽這6000多行數據
2.實現步驟
(1)在頁面插入一個LDataTable控件
頁面源代碼如下(該例子使用的LDataTable控件名稱為MyTable):
<div>
<!--插入LDataTable控件,由於向客戶端傳送DataTable-->
<cc1:LDataTable ID="MyTable" runat="server">
</cc1:LDataTable>
<!--表頭-->
<table id='Table1' class='tab_css' cellspacing="0">
<tbody id='Tbody1'>
<tr class='tr_header_css'>
<td>ID</td>
<td>Name</td>
<td>Tel</td>
<td>E-Mail</td>
</tr>
</tbody>
</table>
<!--以每頁10行顯示表格-->
<div style="overflow: auto; height: 350px;">
<table id='DemoTable' class='tab_css' cellspacing="0" style=" border-top: #000000 0px solid;">
</table>
</div>
<br />
<input id="btnGoTo" type="button" value="跳轉到" onclick="return btnGoTo_onclick ()"/>
<input id="txtPageNum" type="text" style="width: 65px" /> 頁
<br />
<br />
<textarea id="txtLog" readonly="readonly" style="width:640px;height:100px;" rows="0" cols="0"></textarea>
</div>