博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
AJAX 局部刷新 GridView 进行数据绑定
阅读量:4681 次
发布时间:2019-06-09

本文共 3831 字,大约阅读时间需要 12 分钟。

ASPX代码
1 <% @ Page Language = " C# " %>  2  3 
4 5 < script runat ="server" > 6 System.Data.DataView CreateDataSourceByXianhuiMeng() 7 { 8 System.Data.DataTable dt = new System.Data.DataTable(); 9 System.Data.DataRow dr;10 dt.Columns.Add( new System.Data.DataColumn( " id " , typeof (System.Int32)));11 dt.Columns.Add( new System.Data.DataColumn( " 学生姓名 " , typeof (System.String)));12 dt.Columns.Add( new System.Data.DataColumn( " 语文 " , typeof (System.Decimal)));13 dt.Columns.Add( new System.Data.DataColumn( " 数学 " , typeof (System.Decimal)));14 dt.Columns.Add( new System.Data.DataColumn( " 英语 " , typeof (System.Decimal)));15 dt.Columns.Add( new System.Data.DataColumn( " 计算机 " , typeof (System.Decimal)));16 17 for ( int i = 1 ; i < 30 ; i ++ )18 {19 System.Random rd = new System.Random(Environment.TickCount * i); ;20 dr = dt.NewRow();21 dr[ 0 ] = i;22 dr[ 1 ] = " 【孟子E章】 " + i.ToString();23 dr[ 2 ] = System.Math.Round(rd.NextDouble() * 100 , 2 );24 dr[ 3 ] = System.Math.Round(rd.NextDouble() * 100 , 2 );25 dr[ 4 ] = System.Math.Round(rd.NextDouble() * 100 , 2 );26 dr[ 5 ] = System.Math.Round(rd.NextDouble() * 100 , 2 );27 dt.Rows.Add(dr);28 }29 System.Data.DataView dv = new System.Data.DataView(dt);30 return dv;31 }32 33 protected void Page_Load(object sender, EventArgs e)34 {35 if (Request.QueryString[ " id " ] != null )36 {37 Response.ClearContent();38 GridView1.DataSource = CreateDataSourceByXianhuiMeng();39 GridView1.DataBind();40 System.Text.StringBuilder sb = new System.Text.StringBuilder();41 System.IO.StringWriter sw = new System.IO.StringWriter(sb);42 HtmlTextWriter htw = new HtmlTextWriter(sw);43 Literal header = new Literal();44 header.Text = "

项目 " + Request.QueryString[ " id " ] + "

" ;45 Header.Controls.Add(header);46 Header.RenderControl(htw);47 GridView1.RenderControl(htw);48 Response.Write( " 这里查询数据,输出结果就可以了。结果: " + sb.ToString());49 Response.End();50 }51 }52 53 // / 添加这个override void VerifyRenderingInServerForm(Control control),是为了避免出现 54 // / 类型“GridView”的控件“GridView1”必须放在具有 runat=server 的窗体标记内。 55 // / 的异常 56 public override void VerifyRenderingInServerForm(Control control)57 { }58
59 60 < html xmlns ="http://www.w3.org/1999/xhtml" > 61 < head id ="Head1" runat ="server" > 62 < title > 使用 AJAX,局部刷新 GridView 进行数据绑定的简单实现
63 64 < script type ="text/javascript" > 65 function GetData(p) {66 document.getElementById( " d " ).innerHTML = " 正在读取数据…… " ;67 h = window.XMLHttpRequest ? new window.XMLHttpRequest() : new ActiveXObject( " MSXML2.XMLHTTP " );68 h.open( " GET " , ' <%=Request.FilePath %>?id= ' + p.value, true );69 h.onreadystatechange = function () {70 if (h.readyState == 4 ) {71 if (h.status >= 200 && h.status < 300 ) {72 document.getElementById( " d " ).innerHTML = h.responseText;73 }74 else {75 document.getElementById( " d " ).innerHTML = "

数据操作错误:

" + h.responseText;76 }77 }78 }79 h.send( null );80 }81 alert( " 这个提示,只出现在第一次打开页面。 " );82
83 84
85 < body > 86 < form id ="form1" runat ="server" > 87 < asp:GridView ID ="GridView1" runat ="server" >
88 < asp:Panel ID ="Header" runat ="server" >
89 < select onchange ="GetData(this)" > 90 < option value ="1" > 项目一
91 < option value ="2" > 项目二
92
93
94 < div id ="d" >
95
96

点击按钮,刷新 GridView 中的数据,而不是这个页面刷新。使用简单的 XMLHttpRequest 就可以直接实现。具体代码如上方所示

转载于:https://www.cnblogs.com/netalen/archive/2013/04/11/3014312.html

你可能感兴趣的文章
Android上下文菜单ContextMenu
查看>>
【bzoj4543】Hotel加强版(thr)
查看>>
React-Native学习手册----搭建基于ios平台的开发环境
查看>>
[stm32] 中断
查看>>
L1-043 阅览室
查看>>
RTP Payload Format for Transport of MPEG-4 Elementary Streams over http
查看>>
两个时间相差多少 .net中的timespan应用
查看>>
递归 换零钱问题——由打靶子问题引申
查看>>
Python-函数基础
查看>>
Extensible Messaging and Presence Protocol (XMPP) 简介
查看>>
Farm Irrigation
查看>>
windows平板的开发和选型
查看>>
无平方因子的数(数论初步) By ACReaper
查看>>
C语言截取字符串
查看>>
如何查自己的账单
查看>>
JAVA8学习笔记(二)----三个预定义接口
查看>>
JDBC连接各种数据库的字符串
查看>>
构建之法阅读笔记06
查看>>
CentOS minimal新装配置笔记
查看>>
压缩映象原理的一个应用
查看>>