成人精品一区二区三区中文字幕-成人精品一区二区三区-成人精品一级毛片-成人精品亚洲-日本在线视频一区二区-日本在线视频免费

導航首頁 ? 技術(shù)教程 ? 利用jQuery及AJAX技術(shù)定時更新GridView的某一列數(shù)據(jù)
全站頭部文字 我要出現(xiàn)在這里
利用jQuery及AJAX技術(shù)定時更新GridView的某一列數(shù)據(jù) 546 2024-03-18   

看到一個問題:定時更新GridView的某一列中的狀態(tài)文本。馬上就有了思路:GridView最后會生成表格,所以我們在頁面中通過Ajax更新表格的列,從而達到ajax更新GridView的效果。

具體實現(xiàn):

準備一個xml文件,用于存儲要更新的數(shù)據(jù),在頁面中啟動一個定時器,每隔5秒鐘調(diào)用一個函數(shù),函數(shù)里邊通過$.ajax獲取xml中的數(shù)據(jù),解析xml,遍歷表格行,匹配要更新的數(shù)據(jù),更新。

getuserlist.xml

定義一個UserList的根節(jié)點,下邊每個UserItem對應一條數(shù)據(jù),UID可以理解成主鍵,UStatus是最新的狀態(tài)。

<?xml version="1.0" encoding="utf-8" ?>
<UserList>
<UserItem><UID>1</UID><UStatus>關(guān)閉</UStatus></UserItem>
<UserItem><UID>2</UID><UStatus>關(guān)閉</UStatus></UserItem>
<UserItem><UID>3</UID><UStatus>開放</UStatus></UserItem>
</UserList>

test.html

具體的邏輯都寫到這里邊了。

<html>
 <head>
 <title>Ajax Update Table Column</title>
 <script src="http://www.gimoo.net/t/1904/jquery-1.3.1.min.js" type="text/javascript"></script>
 <script type="text/javascript">
  window.onload=function(){
  //每隔5秒檢查一下數(shù)據(jù)
  window.setInterval(checkStatus,5000);
  };
 
  //檢查數(shù)據(jù)
  function checkStatus(){
  //ajax請求數(shù)據(jù)
  $.ajax({
   //換成你的文件,構(gòu)造xml格式的數(shù)據(jù)就行了
  url: 'getuserlist.xml',
  //請求類型
  type: 'GET',
  //數(shù)據(jù)格式
  dataType: 'xml',
  //超時時間:1秒
  timeout: 2000,
  //加載數(shù)據(jù)發(fā)生錯誤
  error:function (XMLHttpRequest, textStatus, errorThrown) {
   alert("XMLHttpRequest="+XMLHttpRequest.responseText+"ntextStatus="+textStatus+"nerrorThrown="+errorThrown);
  },
  //成功加載數(shù)據(jù)
  success: function(xml){

//遍歷表格的行,需要給表格定義一個ID
   $("#userListTable tr").each(function(){

//獲取行的第一列,這里邊保存了XML中對應的UID信息
    var trID=$(this).find("td").eq(0).text();

//數(shù)據(jù)的新狀態(tài)
    var trStatus="";

//遍歷xml中的UserItem
    $(xml).find("UserList > UserItem").each(function(){

//獲取UID和UStatus的值
   var uid = $(this).find("UID").text();
   var ustatus = $(this).find("UStatus").text();

//比對當前行的ID和UID,如果相等,給數(shù)據(jù)的新狀態(tài)賦值
    if(trID==uid){
     trStatus=ustatus;
    }
    });

//如果數(shù)據(jù)的新狀態(tài)不為空,則更新單元格中現(xiàn)實的文本
    if(trStatus!=""){
   $(this).find("td").eq(2).text(trStatus);
    }
   });
  }
   });
  }
 </script>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
 </head>
 <body>

<

這個表格有三列

ID:數(shù)據(jù)的ID,相當于主鍵,用于從xml中查詢新數(shù)據(jù)

Name:只是顯示

Status:要更新的列

-->
 <table border="1" id="userListTable">
  <tr><th>ID</th><th>Name</th><th>Status</th></tr>
  <tr><td>1</td><td>張三</td><td>開放</td></tr>
  <tr><td>2</td><td>李四</td><td>開放</td></tr>
  <tr><td>3</td><td>王五</td><td>開放</td></tr>
 </table>
 </body>
</html>

最后將所需文件放到一個可以瀏覽的站點下邊,打開test.html。
等待5秒鐘,就可以看到效果了。

因為IE的問題,直接在文件夾下打開會出現(xiàn)不能解析xml文件(parsererror)的問題,所以建議放到可以運行的站點下邊,或者用別的瀏覽器打開。

PS:GridView 是 DataGrid的后繼控件,在 framework 2 中,雖然還存在DataGrid,但是GridView已經(jīng)走上了歷史的前臺,取代DataGrid的趨勢已是勢不可擋。GridView和DataGrid功能相似,都是在web頁面中顯示數(shù)據(jù)源中的數(shù)據(jù),將數(shù)據(jù)源中的一行數(shù)據(jù),也就是一條記錄,顯示為在web頁面上輸出表格中的一行。
GridView相對于DataGrid來說,具有如下優(yōu)勢,功能上更加豐富,因為提供了智能標記面板(也就是show smart tag)更加易用方便,常用的排序、分頁、更新、刪除等操作可以零代碼實現(xiàn)!具有PagerTemplate屬性,可以自定義用戶導航頁面,也就是說分頁的控制更加隨心所欲。GridView和DataGrid在事件模型上也多有不同之處,DataGrid控件引發(fā)的都是單個事件,而GridView控件會引發(fā)兩個事件,一個在操作前發(fā)生,一個在操作后發(fā)生,操作前的事件多位***ing事件,操作后的事件多位***ed事件,比如Sorting 事件和sorted 事件,RowDeleting和RowDeleted事件。
Listview和Gridview的刷新界面的方式是調(diào)用adapter.notifyDataSetChanged()進行界面刷新。
但是此方法有其弊端,他是將界面中的數(shù)據(jù)全部刷新一遍,不論數(shù)據(jù)有沒有變化。



主站蜘蛛池模板: 又见阿郎电视剧免费观看| sarajay大白臀ryanconner| 蓝燕3d电影《极乐宝鉴》在线观看| 微信头像2024年最新版图片男| 色戒》| 阴道电影| 黑龙江卫视节目| 宁静是什么民族| 七龙珠2| 邓紫飞| 李洋个人资料照片| 崛井美月| 珊瑚海 歌词| 传说的打火机在线观看| 女生宿舍2在线| 南果步| 小学道德与法治课程标准2023版| 变形金刚1普通话版| 我们的高清免费视频观看| 真实游戏完整版高清观看| 隐秘的角落豆瓣| 《鱼我所欲也》原文及译文| 南方车站的聚会| 拔萝卜电影| 把乐带回家| 回到黑暗 电影| 同字异音联| 美女爆白浆翘臀xxoo| 关于心情的词语| 婷婷sese| 成年人看| 人口高质量发展形势与政策论文 | 惊悚电影| dy充值| 蒙羞之旅| 潇湘影院| 红海行动2| x档案第二季| 艺术影院| 麦兆辉| 坏孩子电影|

!!!站長長期在線接!!!

網(wǎng)站、小程序:定制開發(fā)/二次開發(fā)/仿制開發(fā)等

各種疑難雜癥解決/定制接口/定制采集等

站長微信:lxwl520520

站長QQ:1737366103