当前位置: 代码迷 >> ASP.NET >> 如何利用ajax技术只刷新GridView中的某一列
  详细解决方案

如何利用ajax技术只刷新GridView中的某一列

热度:9071   发布时间:2013-02-25 00:00:00.0
怎么利用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 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; charset=utf-8">    </head>    <body>        <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>
  相关解决方案