读书人

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

发布时间: 2012-03-19 22:03:05 作者: rapoo

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


[解决办法]
获取到的xml 解析dom 用js 填充到gridview 循环填充到你的第3列里面去咯。

实现绝对是可以的。

读书人网 >asp.net

热点推荐