怎么利用ajax技术只刷新GridView中的某一列?
aspx中的代码如下:
<body bgcolor="inactivecaptiontext">
<form id="form1" runat="server">
<div>
<asp:GridView ID="GridView1" runat="server" AutoGenerateDeleteButton="True" BorderColor="Black"
HorizontalAlign="Center" OnRowDeleting="GridView1_RowDeleting" Style="z-index: 100;
left: 36px; position: relative; top: 49px" Width="80%">
<HeaderStyle BackColor="Black" BorderColor="#C000C0" ForeColor="White" Height="10px" />
<AlternatingRowStyle BorderColor="#C00000" BorderWidth="6px" />
</asp:GridView>
</div>
</form>
</body>
对应cs中的代码如下:
private void refreshTaskTable()
{
this.GridView1.DataSource = Logic.getTasks(type, statue);
this.GridView1.DataBind();
/*this.GridView1.Columns[0].HeaderText = "任务ID";
this.GridView1.Columns[1].HeaderText = "任务名称";
this.GridView1.Columns[2].HeaderText = "任务类型";
this.GridView1.Columns[3].HeaderText = "任务状态";*/
}
小弟我因为不会ajax,现在是每几秒调用一次refreshTaskTable()来刷新整个gridview,但其实只有Columns[3]( "任务状态")发生变话,请教各位达人,如何能够实现只刷新这一列呢?
------解决方案--------------------jquery
1.获取的目前的状态
2.$('#GridView1').find('tr:eq(要刷行的行(0--N))').find('td:eq(要刷新的列(0--N))').text('新值')
------解决方案--------------------
可以实现。下边提供一个例子,具体的数据获取和格式还需要楼主自己来写。
test.html
HTML code
<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(){
//每隔3秒检查一下数据
window.setInterval(checkStatus,5000);
};
//检查数据
function checkStatus(){
//ajax请求数据
$.ajax({
//换成你的文件,构造xml格式的数据就行了
url: 'getuserlist.xml',
//请求类型
type: 'GET',
//数据格式
dataType: 'xml',
//超时时间:1秒
timeout: 2000,
//加载数据发生错误
error:function (XMLHttpRequest, textStatus, errorThrown) {
alert("XMLHttpRequest="+XMLHttpRequest.responseText+"\ntextStatus="+textStatus+"\nerrorThrown="+errorThrown);
},
//成功加载数据
success: function(xml){
$("#userListTable tr").each(function(){
var trID=$(this).find("td").eq(0).text();
var trStatus="";
$(xml).find("UserList > UserItem").each(function(){
var uid = $(this).find("UID").text();
var ustatus = $(this).find("UStatus").text();
if(trID==uid){
trStatus=ustatus;
}
});
if(trStatus!=""){
$(this).find("td").eq(2).text(trStatus);
}
});
}
});
}
</script>
<meta http-equiv="Content-Type" content="text/html; c