使用ajax局部刷新gridview进行数据绑定示例

 很多用户都有这样需求,比如:点击按钮,刷新 GridView 中的数据,而不是这个页面刷新。使用简单的 XMLHttpRequest就可以直接实现

具体代码如下:
代码如下:
 <% @ Page Language = " C# " %> 
 
<! DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" > 
 
< script runat ="server" >   
  System.Data.DataView CreateDataSourceByXianhuiMeng()
  {
    System.Data.DataTable dt = new System.Data.DataTable();
    System.Data.DataRow dr;
    dt.Columns.Add( new System.Data.DataColumn( " id " , typeof (System.Int32)));
    dt.Columns.Add( new System.Data.DataColumn( " 学生姓名 " , typeof (System.String)));
    dt.Columns.Add( new System.Data.DataColumn( " 语文 " , typeof (System.Decimal)));
    dt.Columns.Add( new System.Data.DataColumn( " 数学 " , typeof (System.Decimal)));
    dt.Columns.Add( new System.Data.DataColumn( " 英语 " , typeof (System.Decimal)));
    dt.Columns.Add( new System.Data.DataColumn( " 计算机 " , typeof (System.Decimal)));
 
     for ( int i = 1 ; i < 30 ; i ++ )
    {
      System.Random rd = new System.Random(Environment.TickCount * i); ;
      dr = dt.NewRow();
      dr[ 0 ] = i;
      dr[ 1 ] = " 【孟子E章】 " + i.ToString();
      dr[ 2 ] = System.Math.Round(rd.NextDouble() * 100 , 2 );
      dr[ 3 ] = System.Math.Round(rd.NextDouble() * 100 , 2 );
      dr[ 4 ] = System.Math.Round(rd.NextDouble() * 100 , 2 );
      dr[ 5 ] = System.Math.Round(rd.NextDouble() * 100 , 2 );
      dt.Rows.Add(dr);
    }
    System.Data.DataView dv = new System.Data.DataView(dt);
     return dv;
  }
 
  protected void Page_Load(object sender, EventArgs e)
  {
     if (Request.QueryString[ " id " ] != null )
    {
      Response.ClearContent();
      GridView1.DataSource = CreateDataSourceByXianhuiMeng();
      GridView1.DataBind();
      System.Text.StringBuilder sb = new System.Text.StringBuilder();
      System.IO.StringWriter sw = new System.IO.StringWriter(sb);
      HtmlTextWriter htw = new HtmlTextWriter(sw);
      Literal header = new Literal();
      header.Text = " <h2>项目 " + Request.QueryString[ " id " ] + " </h2> " ;
      Header.Controls.Add(header);
      Header.RenderControl(htw);
      GridView1.RenderControl(htw);
      Response.Write( " 这里查询数据,输出结果就可以了。结果: " + sb.ToString());
      Response.End();
    }
  }
 
   // / 添加这个override void VerifyRenderingInServerForm(Control control),是为了避免出现 
   // / 类型“GridView”的控件“GridView1”必须放在具有 runat=server 的窗体标记内。 
   // / 的异常 
  public override void VerifyRenderingInServerForm(Control control)
  { }
</ script > 
 
< html xmlns ="http://www.w3.org/1999/xhtml" > 
< head id ="Head1" runat ="server" > 
   < title > 使用 AJAX,局部刷新 GridView 进行数据绑定的简单实现 </ title > 
 
   < script type ="text/javascript" > 
     function GetData(p) {
      document.getElementById( " d " ).innerHTML = " 正在读取数据…… " ;
      h = window.XMLHttpRequest ? new window.XMLHttpRequest() : new ActiveXObject( " MSXML2.XMLHTTP " );
      h.open( " GET " , ' <%=Request.FilePath %>?id= ' + p.value, true );
      h.onreadystatechange = function () {
         if (h.readyState == 4 ) {
           if (h.status >= 200 && h.status < 300 ) {
            document.getElementById( " d " ).innerHTML = h.responseText;
          }
           else {
            document.getElementById( " d " ).innerHTML = " <h2>数据操作错误:</h2> " + h.responseText;
          }
        }
      }
      h.send( null );
    }
    alert( " 这个提示,只出现在第一次打开页面。 " );
   </ script > 
 
</ head > 
< body > 
   < form id ="form1" runat ="server" > 
   < asp:GridView ID ="GridView1" runat ="server" ></ asp:GridView > 
   < asp:Panel ID ="Header" runat ="server" ></ asp:Panel > 
   < select onchange ="GetData(this)" > 
     < option value ="1" > 项目一 </ option > 
     < option value ="2" > 项目二 </ option > 
   </ select > 
   </ form > 
   < div id ="d" ></ div > 
</ body > 
</ html > 
 

时间: 2024-11-03 21:08:35

使用ajax局部刷新gridview进行数据绑定示例的相关文章

Ajax局部刷新应用案例

 Ajax局部刷新在之前的文章中也有介绍过,下面以一个登录的例子为大家介绍下其具体的使用 二话不说了,直接给代码,相信需要的都是代码而不是废话一堆--  1.java代码:   代码如下: package tt;    import java.io.IOException;  import java.io.PrintWriter;    import javax.servlet.ServletException;  import javax.servlet.http.HttpServlet; 

jquery ajax 局部刷新小案例

 这篇文章主要是对jquery ajax 局部刷新的小案例进行了介绍,需要的朋友可以过来参考下,希望对大家有所帮助  代码如下: <html> <head> <script type="text/javascript" src="js/jquery.js"></script> <script type="text/javascript">  function getOtherMessag

ajax局部刷新问题,想听听思路

问题描述 ajax局部刷新问题,想听听思路 框架:SpringMVC 前端:JSP 我对ajax局部刷新的原理的理解是:ajax向后台发送异步请求,返回结果. 但这个结果能不能是一个List? 如果可以,怎么处理这个List? 如果不可以,那要怎么做? 因为一般情况下我后台处理数据返回前台是在jstl直接解析,ajax返回的是json,不知道要怎么做. 想听听思路 解决方案 请求可以是同步或者异步,看你后续的操作是否需要返回的数据.能过 success 来对返回的数据作处理.数据可以是List,

为什么使用ajax局部刷新返回到jsp中的&amp;amp;lt;a&amp;amp;gt;在jsp中使用event.target获取不到

问题描述 为什么使用ajax局部刷新返回到jsp中的<a>在jsp中使用event.target获取不到 为什么使用ajax局部刷新返回到jsp中的在jsp中使用event.target获取不到,应该怎样获取 解决方案 JQuery: $("#first").text("ssss"); //"sss"字符串是你要刷新的数据

ajax局部刷新实例 (三种方法推荐)

ajax局部刷新 <script> setInterval("refreshTime()",1000); //每格1秒刷新一次 funciton refreshTime() { var dateObj = new Date(); time.innerHTML = dateObj.toLocaleDateString(); //刷新div里面的内容 } </script> <div id=time> </div> function doRe

php ajax 局部刷新实现无刷新发表文章评论(兼容主浏览器)

php教程 ajax 局部刷新实现无刷新发表文章评论(兼容主浏览器) 在网站发表评论的经历,传统的发表过程无非是:发表->提交页面表单->等待刷新页面, 这样在网络比较拥挤的时候,往往需要漫长的等待,今天介绍用PHP+Ajax实现页面无刷新发 表评论,希望对初学ajax的PHPer有所帮助.   那么首先,我们需要一个基本的ajax开发框 架,文件ajax.js就包含了这个框架,代码如下: var http_request=false;   function send_request(url)

ajax无刷新验证注册信息示例

ajax无刷新验证注册信息示例,其大概思路如下: 一.把注册的html页面做好(html+css) 1.不需要form表单,直接用div包着 2.需要四个标签来显示正确.错误的信息显示 3.不用submit提交按钮,直接用button 如图: 二.把ajax做成一个函数,通过传简单的参数可以与服务器进行数据交换. 1.这个ajax函数前面有一篇如何处理利用ajax处理返回数据的文章中详细说明了. 2.ajax函数需要三个参数,url,jsonData,getMsg.这里的url都是regProc

纯JS实现AJAX局部刷新功能

AJAX即"Asynchronous Javascript And XML"(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术. AJAX = 异步 JavaScript和XML(标准通用标记语言的子集). AJAX 是一种用于创建快速动态网页的技术. 下面给大家介绍JS实现AJAX局部刷新功能,具体内容如下所示: 通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新.这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新. //

关于ASP.NET中实现AJAX局部刷新

问题描述 在asp.net里面不用微软的Ajax控件用javascript,Ajax实现服务器有新数据,在网页上就能局部刷新出来这种效果吗?新手学javascript,其实一直想学javascript,用什么调试工具呢?vs2010可以不?大家有什么建议给指导下吧? 解决方案 解决方案二:不用微软的scriptmanager当然可以.那就自己手写ajax,基本上在实际开发中,都是使用js的ajax.可以使用visualstudio调试,但是前提你必须写测试程序.现在的浏览器都支持js调试,具体方