日期:2014-05-18  浏览次数:20628 次

怎么利用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