国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > AJAX > 正文

利用jQuery及AJAX技術(shù)定時(shí)更新GridView的某一列數(shù)據(jù)

2024-09-01 08:33:35
字體:
供稿:網(wǎng)友
這篇文章主要介紹了利用jQuery及AJAX技術(shù)定時(shí)更新GridView的某一列數(shù)據(jù)的方法,這里的GridView是指C#軟件開發(fā)中的GridView控件,需要的朋友可以參考下
 

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

具體實(shí)現(xiàn):

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

getuserlist.xml

定義一個(gè)UserList的根節(jié)點(diǎn),下邊每個(gè)UserItem對應(yīng)一條數(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="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',  //超時(shí)時(shí)間:1秒  timeout: 2000,  //加載數(shù)據(jù)發(fā)生錯(cuò)誤  error:function (XMLHttpRequest, textStatus, errorThrown) {   alert("XMLHttpRequest="+XMLHttpRequest.responseText+"/ntextStatus="+textStatus+"/nerrorThrown="+errorThrown);  },  //成功加載數(shù)據(jù)  success: function(xml){//遍歷表格的行,需要給表格定義一個(gè)ID   $("#userListTable tr").each(function(){//獲取行的第一列,這里邊保存了XML中對應(yīng)的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();//比對當(dāng)前行的ID和UID,如果相等,給數(shù)據(jù)的新狀態(tài)賦值    if(trID==uid){     trStatus=ustatus;    }    });//如果數(shù)據(jù)的新狀態(tài)不為空,則更新單元格中現(xiàn)實(shí)的文本    if(trStatus!=""){   $(this).find("td").eq(2).text(trStatus);    }   });  }   });  } </script> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> </head> <body><!--這個(gè)表格有三列ID:數(shù)據(jù)的ID,相當(dāng)于主鍵,用于從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>

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

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

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)勢,功能上更加豐富,因?yàn)樘峁┝酥悄軜?biāo)記面板(也就是show smart tag)更加易用方便,常用的排序、分頁、更新、刪除等操作可以零代碼實(shí)現(xiàn)!具有PagerTemplate屬性,可以自定義用戶導(dǎo)航頁面,也就是說分頁的控制更加隨心所欲。GridView和DataGrid在事件模型上也多有不同之處,DataGrid控件引發(fā)的都是單個(gè)事件,而GridView控件會(huì)引發(fā)兩個(gè)事件,一個(gè)在操作前發(fā)生,一個(gè)在操作后發(fā)生,操作前的事件多位***ing事件,操作后的事件多位***ed事件,比如Sorting 事件和sorted 事件,RowDeleting和RowDeleted事件。
Listview和Gridview的刷新界面的方式是調(diào)用adapter.notifyDataSetChanged()進(jìn)行界面刷新。
但是此方法有其弊端,他是將界面中的數(shù)據(jù)全部刷新一遍,不論數(shù)據(jù)有沒有變化。



注:相關(guān)教程知識閱讀請移步到JavaScript/Ajax教程頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 涟源市| 绥阳县| 大同市| 明水县| 山阳县| 曲松县| 南岸区| 都江堰市| 哈巴河县| 孟连| 宜兰县| 吉林省| 甘泉县| 石嘴山市| 蒲城县| 珲春市| 黄龙县| 登封市| 清河县| 扎赉特旗| 江西省| 黔江区| 天台县| 湖北省| 甘谷县| 虹口区| 巨野县| 隆安县| 西畴县| 弥渡县| 治多县| 民勤县| 惠来县| 德兴市| 桃江县| 抚宁县| 林甸县| 武山县| 凉山| 台东市| 金平|