Ajax基础-服务器端ASP.net脚本请求和响应

AJAX请求ASP.Net脚本

Ajax基础-XMLHttpRequest对象的创建、数据请求和处理中已经介绍了XMLHTTPREQUEST对象的使用。下面是使用该对象请求服务器数据。

代码在IE6、FireFox1.5、NetScape8.1、Opera9调试通过。服务器为Window2000P + IIS5+ASP.net 2.0

1、使用XMLHTTPREQUEST对象请求ASP.Net文件

这里仍然使用GET方法来请求服务器端数据,与上篇不同的是,这次请求的是ASP.Net的脚本文档而不是XML文件,需要服务器解析并返回数据。客户端得到数据后依然直接显示。

/ ASP.net处理过程,请求ASP.net文件
function startRequestFromServer()
{
    createXMLHttpRequest();
    xhr.onreadystatechange = handleStateChangeASPX;
    xhr.open("GET","ajaxserver.aspx",true);      // 使用GET方法请求ASP.Net文件
    xhr.send(null);
}
/ AJAX得到回应的处理方式,直接在已有的标签中显示返回结果
function handleStateChangeASPX()
{
    if (xhr.readyState == 4)
    {
        if (xhr.status == 200)
        {
            var test = document.getElementById("test");
            test.innerHTML = xhr.responseText;
        }
    }
}

XMLHTTPREQUEST对象的建立参照上文

2、服务器端脚本

服务器端脚本简单的使用了ASP.Net提供的数据查询功能,查询结果通过HTML文档的方式返回给客户端。

ajaxserver.aspx.cs文件
using System;
using System.Data;
using System.Data.OleDb;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

public partial class ajaxserver : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            // 建立数据库连接并查询数据
            String connectionString = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=";
            connectionString += MapPath("") + "/XTT.MDB";
            OleDbConnection connection = new OleDbConnection(connectionString);
            connection.Open();
            OleDbCommand command = new OleDbCommand();
            command.Connection = connection;
            command.CommandText = "SELECT * FROM Classes";
            OleDbDataReader reader = command.ExecuteReader();
            
             // 将数据查询结果以HTML的格式返回给浏览器
            Response.Write("<br //>");

            // 创建返回结果的表格,这里最好要包含<tbody>这个标签,IE对这个标签敏感。
            String Xhtml = "<table cellspacing='0' cellpadding='0' width='60%' style='border-style: solid; border-width: 1px; padding-left: 0px; padding-right: 0px; padding-top: 0px; padding-bottom:0px  font-family:宋体; font-size:9pt'><tbody>";
            Xhtml += "<tr>";
             //  建立表头
            Xhtml += "<th bgcolor='#C0C0C0' height='32' style='border-right:1px solid #FFFFFF;'>分类标识<//th>";
            Xhtml += "<th bgcolor='#C0C0C0' height='32' style='border-right:1px solid #FFFFFF;'>分类名称<//th>";
            Xhtml += "<th bgcolor='#C0C0C0' height='32' style='border-right:1px solid #FFFFFF;'>创建时间<//th>";
            Xhtml += "<th bgcolor='#C0C0C0' height='32' style='border-right:1px solid #FFFFFF;'>创 建 人<//th>";
            Xhtml += "<th bgcolor='#C0C0C0' height='32' style='border-right:1px solid #FFFFFF;'>父类标识<//th>";
            Xhtml += "<th bgcolor='#C0C0C0' height='32'>操作<//th>";
            Xhtml += "</tr>";
            // 填写表格数据
            while (reader.Read())
            {
                Xhtml += "<tr>";
                Xhtml += "<td height='20' style='border-right:1px solid #C0C0C0;'>" + reader["Class_ID"].ToString() + "<//td>";
                Xhtml += "<td height='20' style='border-right:1px solid #C0C0C0;'>" + reader["Class_Name"].ToString() + "<//td>";
                Xhtml += "<td height='20' style='border-right:1px solid #C0C0C0;'>" + reader["Create_Time"].ToString() + "<//td>";
                Xhtml += "<td height='20' style='border-right:1px solid #C0C0C0;'>" + reader["Create_Man"].ToString() + "<//td>";
                Xhtml += "<td height='20' style='border-right:1px solid #C0C0C0;'>" + reader["Parent_ID"].ToString() + "<//td>";
                Xhtml += "<td>" + "<a href=edit.aspx?ID=" + reader["Class_ID"].ToString() + ">" + "编辑" + "<//a>";
                Xhtml += "<//tr>";
            }
             //  建表结束
            Xhtml += "<//tbody><//table>";
             //  返回给浏览器
            Response.Write(Xhtml);
            reader.Close();
            reader.Dispose();
        }
    }
}


ajaxServer.aspx文件

由于服务器端会返回ASP.net页面上的所有内容,这里将HTML标签全部删掉了。只剩下与.CS文件相关的内容。如果将标签和代码放在一个页面内会更好。

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="ajaxserver.aspx.cs" Inherits="ajaxserver" Debug="true" %>

3、数据库

数据库文件与ajaxServer.ASPX在相同的目录下。

名称:XTT.mdb
表名:Classes
字段名                       类型                  长度
Class_ID                  char                  10
Class_Name           char                  20
Create_Time           DateTime        
Create_Man             char                   10
Parent_ID                 char                   10

4、执行结果

转载于:https://www.cnblogs.com/savageworld/archive/2006/07/18/453823.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值