用ajax使网页不刷新就可以显示新数据

用AjaxPro的:
1. 在引用中添加引用AjaxPro.dll,我用的是这个,支持asp.net 1.1 和asp.net 2.0。

2. web.config中建立HttpHandler

3..新建一个类Demo,这个类里面提供了查询数据库和输出列表的方法。获得服务器控件运行后生成的html,然后返回客户端。

Demo.cs

---------------------------------------------

using System;
using System.Data;
using AjaxPro;
using System.Web.UI.WebControls;

namespace AJAXDemo
{
 public class Demo
 {
  public Demo()
  {
  }

   [AjaxMethod]
  public DataSet GetSqlServerTable()
  {
   DataSet ds = new DataSet();
   System.Data.SqlClient.SqlConnection conn = new System.Data.SqlClient.SqlConnection("user id=sa;data source=SERVER;initial catalog=zhsj");
   System.Data.SqlClient.SqlDataAdapter da = new System.Data.SqlClient.SqlDataAdapter("SELECT id FROM 发货单", conn);

   try
   {
    conn.Open();
  
    try
    {
     da.Fill(ds);
    }
    finally
    {
     conn.Close();
     conn.Dispose();
    }
   }
   catch(Exception)
   {
   }

   return ds;
  }

  [AjaxMethod]
  public string GetAjaxTable()
  { 
   DataSet ds = new DataSet();
   System.Data.SqlClient.SqlConnection conn = new System.Data.SqlClient.SqlConnection("user id=sa;data source=SERVER;initial catalog=zhsj");
   System.Data.SqlClient.SqlDataAdapter da = new System.Data.SqlClient.SqlDataAdapter("SELECT top 8 * from 规格对应表",conn);

   try
   {
    conn.Open();
  
    try
    {
     da.Fill(ds);
    }
    finally
    {
     conn.Close();
     conn.Dispose();
    }
   }
   catch(Exception)
   {
   }

      
   DataGrid dg=new DataGrid();
   dg.DataSource=ds;
   dg.DataBind();

   //实例化一个HtmlTextWriter的类
   System.Text.StringBuilder sb=new System.Text.StringBuilder();
   System.IO.StringWriter sw=new System.IO.StringWriter(sb);
   System.Web.UI.HtmlTextWriter htw=new System.Web.UI.HtmlTextWriter(sw);
 
   //设置DataGrid的样式

   htw.AddAttribute("BorderWidth","1px",true);
   htw.AddAttribute("BackColor","White",true);
   htw.AddAttribute("CellPadding","4",true);
   htw.AddAttribute("CellSpacing","2",true);
   htw.AddAttribute("ForeColor","#330099",true);


   dg.RenderControl(htw);
   string s=sb.ToString();

   return s;
  }

 

 }
}


4.建一个default.aspx,在pageload事件里面注册

 private void Page_Load(object sender, System.EventArgs e)
  {
   // 在此处放置用户代码以初始化页面
   AjaxPro.Utility.RegisterTypeForAjax(typeof(AJAXDemo.Demo));
  }

5.编default.aspx的页面代码,主要部分是脚本

<script language="javascript" defer>
function doTest(){
AJAXDemo.Demo.GetSqlServerTable(_callback);
}

function _callback(res){
var cols = res.value.Tables[0].Columns.length;
var rows = res.value.Tables[0].Rows.length;
alert(cols + " cols and " + rows + " rows");
}

function loadGrid(){
AJAXDemo.Demo.GetAjaxTable(_callback2);
}

function _callback2(res){
document.getElementById("UCtd").innerHTML=res.value;
}

</script>  

 

window.setTimeout(XXXXX, 1000);
每1秒刷新

 

利用自动无刷新技术:
function xmlHttp(url){
var xmlccj= new ActiveXObject("Microsoft.XMLHttp")
xmlccj.open("post",url,false);
xmlccj.send();
var xmlHttps=bytes2BSTR(xmlccj.responseBody);
return xmlHttps;
}
使用方法:(参数url:提取数据的页)
需要两页文件,1、显示数据的页;2、提取数据的页
在显示数据的那页利用此函数就可把要提取的数据实现自己无刷新更新了
不过要处理中文问题,我这里就不说了,你可以查查相关资料。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值