(四).net ajax异步刷新

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_36922927/article/details/84982284

什么是ajax

ajax=Asynchronous Javascript And XmlHttpRequest(XHR)
ajax是对通用标准的封装。
AJAX关键技术:

1,使用XHTML(HTML)和css构建标准的显示层
2,使用DOM(document object model)进行动态显示和交互
3,使用XML和XLST进行数据交换和操纵
4,使用XMLHttpRequest异步获取数据
5,使用javascript 将所有元素绑定在一起
6,DOM,当创建了一个网页并加载到web浏览器中,就会在幕后创建一个文档对象模型
7,DOM表示被加载到浏览器窗口的当前页面,可以通过javascript访问这个模型
8,DOM把一份文档表示为一棵树
在这里插入图片描述

树:
在这里插入图片描述
传统的网络请求与ajax请求对比:
在这里插入图片描述传统的与ajax对比,ajax实现了页面的局部刷新,而不是重新加载整个页面,提高了响应速度,减少了网络数据的传输,改善了用户体验.

如何在.net aspx中使用ajax呢?

1添加ajax扩展库(是一个.dll文件)

在这里插入图片描述
在visualstudio中的toolbox处,右键-》addTab,然后随便取个名字(MyAjax)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2往页面中拖入ManagerScript控件

3拖入UpdatePanel控件

4拖入需要异步刷新的控件到UpdatePanel中(一定要放到UpdatePanel中,不然没效果)

怎么判断是否是实现了异步刷新呢?

1通过在pageLoad函数中输出当前时间即可,如果是异步刷新,pageLoad是只进入一次的,那个时间也就是不变的

2观察浏览器中该页面是否闪动(闪动表示整个页面重新加载了)

.net 中的ajax不需要改变已有的所有代码,只需要在设计视图下将需要异步刷新的控件拖动到updatePanel中即可,十分方便.

展开阅读全文

jquery ajax 异步刷新gridview的问题

07-27

这是前台代码[code=html]<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>rnrnrnrnrnrn rn rn rn rnrnrn rn rn Test Async Gridviewrn rn rn rn rn rn rn rn Change page length to — rn rn rn rnrn[/code]rn这是后台代码[code=csharp]using System;rnusing System.Data;rnusing System.IO;rnusing System.Collections.Generic;rnusing System.Web;rnusing System.Web.Services;rnusing System.Web.UI;rnusing System.Web.UI.WebControls;rnrnpublic partial class _Default : System.Web.UI.Page, ICallbackEventHandlerrnrn private string result;rn string StrAction = "";rn protected void Page_Load(object sender, EventArgs e)rn rn StrAction = Request["action"];rn if (StrAction == "action")rn rn tryrn rn this._grid.DataSource = _sampleData;rn this._grid.DataBind();rn this.ddl.Items.Add("10");rn this.ddl.Items.Add("20");rn this.ddl.Items.Add("30");rn this.ddl.Attributes.Add("onchange", "javascript:UpdateGrid('changePageLength$' + this.value);");rn Response.Clear();rn Response.ContentType = "application/text";rn Response.Write("yes");rn Response.End();rn int n=this._grid.Rows.Count;rn rn catch(Exception )rn rn Response.Clear();rn Response.ContentType = "application/text";rn Response.Write("no");rn Response.End();rn rn rn public DataTable _sampleDatarn rn get rn rn DataTable dt = (DataTable)ViewState["DataTable"];rn if(dt == null)rn rn ...//绑定的数据rn rn return dt;rn rn private void sortGrid(string Argument , string pageLength) rn rn DataView dv = _sampleData.DefaultView;rn result = "";rn dv.Sort = Argument;rn _grid.DataSource = dv;rn _grid.PageSize = Convert.ToInt16(pageLength);rn _grid.DataBind();rn renderGrid(_grid);rn rn private void changePage(string Argument , string pageLength) rn rn result = "";rn _grid.DataSource = _sampleData;rn _grid.PageSize = Convert.ToInt16(pageLength);rn _grid.PageIndex = Convert.ToInt16(Argument);rn _grid.DataBind();rn renderGrid(_grid);rn rn private void changePageLength(string Argument, string pageLength) rn rn result = "";rn _grid.DataSource = _sampleData;rn _grid.PageSize = Convert.ToInt16(Argument);rn _grid.DataBind();rn renderGrid(_grid);rn //pageLength is not usedrn rn private void renderGrid(GridView _grid)rn rn using (StringWriter sw = new StringWriter())rn rn HtmlTextWriter htw = new HtmlTextWriter(sw);rn _grid.RenderControl(htw);rn htw.Flush();rn result = sw.ToString();rn rn rn public string GetCallbackResult()rn rn return result;rn rn public void RaiseCallbackEvent(string eventArgument) rn rn string[] args = eventArgument.Split('$');rn if (args[0] == "sort") sortGrid(args[1], args[2]); rn else if (args[0] == "changePage") changePage(args[1], args[2]); rn else if (args[0] == "changePageLength") changePageLength(args[1], args[2]); rn rn protected void _grid_RowDataBound(object sender, GridViewRowEventArgs e)rn rn if (e.Row.RowType == DataControlRowType.Header)rn rn for (int i = 0; i < e.Row.Cells.Count; i++)rn rn e.Row.Cells[i].Text = string.Format("0", e.Row.Cells[i].Text);rn rn rn else if (e.Row.RowType == DataControlRowType.Pager)rn rn GridView gdv = (GridView)sender;rn int _pageCount = gdv.PageCount;rn e.Row.Cells[0].Text = "";rn for (int i = 0; i < _pageCount; i++)rn rn HyperLink hyp = new HyperLink();rn hyp.Text = i.ToString() + " ";rn hyp.Attributes.Add("href", "javascript:UpdateGrid('changePage$" + i + "');");rn e.Row.Cells[0].Controls.Add(hyp);rn Label l = new Label();rn l.Text = " ";rn e.Row.Cells[0].Controls.Add(l);rn hyp = null;rn rn rn rn[/code]rn我把后台代码if (StrAction == "action")去掉打开网页就会显示这个gridview,可是加了这个之后点击按钮什么都不显示,我怀疑就是jquery的ajax的关系,请问要怎么修改啊! 论坛

没有更多推荐了,返回首页