开发环境:vs2008 sp1 sql2000 ie8
本来前面一段时间做项目一直用的JQ 不过JQ毕竟是封装的JS 现在上面人物需要了解底层 在网上看ajax的一个小实例遇到一点问题 从而引发一连串的问题 望耐心解答.
下面是我利用ajax异步请求来判断一个用户名是否存在的小例子 不过后台始终取不到值 我觉得应该是JS代码的问题 希望看看。<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="关于Ajax异步._Default" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>无标题页</title> <script language="javascript" type="text/javascript">
var xmlhttp;
function Validation()
{
//实例化XMLHttpRequest对象
xmlhttp =new ActiveXObject ("Microsoft.XMLHTTP");
//找到名为“Text1”的文本框
var name=document .getElementById ("username").value;
//利用Open方法向指定URL
//查询字符串“name”将文本框中的数据传送到目标页面
xmlhttp.open("Post","Default.aspx?name="+name);
//设置当服务器响应返回时用于处理响应的函数名
xmlhttp.onreadystatechange=OnMessageBack;
//送发请求
xmlhttp.send(null);
}
function OnMessageBack()
{
//判断请求状态及HTTP状态是否都能满足条件
if (xmlhttp.readystate==4&&xmlhttp.status==200)
{
//将返回的文本打印到页面上
document.write (xmlhttp.responsetext);
}
}
</script></head>
<body>
<form id="form1" runat="server">
<div>
<input type="text" id="username" />
<input id="Button1" type="button" value="button" onclick="javascript:Validation()" />
</div>
</form>
</body>
</html>
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Data.SqlClient;
namespace 关于Ajax异步
{
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{ string name = this.Request.QueryString["name"].ToString();
if (name != null)
{
SqlConnection conn = new SqlConnection("server=.;database=AS_NRM;uid=sa;pwd=sa");
DataSet ds = new DataSet();
string sql = string.Format("select count(*) from t_user where name='{0}'", name);
SqlCommand cmd = new SqlCommand(sql, conn);
int num = (int)cmd.ExecuteScalar();
if (num > 0)
{
this.Response.Write("用户名已经存在");
}
else
{
this.Response.Write("用户名可以使用!");
}
} }
}
}
还有一点疑惑.如果我这个页面的.cs页面返回的是一个数据集 例如dataset 我的ajax异步请求后 前台该如何接收并显示呢?
本来前面一段时间做项目一直用的JQ 不过JQ毕竟是封装的JS 现在上面人物需要了解底层 在网上看ajax的一个小实例遇到一点问题 从而引发一连串的问题 望耐心解答.
下面是我利用ajax异步请求来判断一个用户名是否存在的小例子 不过后台始终取不到值 我觉得应该是JS代码的问题 希望看看。<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="关于Ajax异步._Default" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>无标题页</title> <script language="javascript" type="text/javascript">
var xmlhttp;
function Validation()
{
//实例化XMLHttpRequest对象
xmlhttp =new ActiveXObject ("Microsoft.XMLHTTP");
//找到名为“Text1”的文本框
var name=document .getElementById ("username").value;
//利用Open方法向指定URL
//查询字符串“name”将文本框中的数据传送到目标页面
xmlhttp.open("Post","Default.aspx?name="+name);
//设置当服务器响应返回时用于处理响应的函数名
xmlhttp.onreadystatechange=OnMessageBack;
//送发请求
xmlhttp.send(null);
}
function OnMessageBack()
{
//判断请求状态及HTTP状态是否都能满足条件
if (xmlhttp.readystate==4&&xmlhttp.status==200)
{
//将返回的文本打印到页面上
document.write (xmlhttp.responsetext);
}
}
</script></head>
<body>
<form id="form1" runat="server">
<div>
<input type="text" id="username" />
<input id="Button1" type="button" value="button" onclick="javascript:Validation()" />
</div>
</form>
</body>
</html>
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Data.SqlClient;
namespace 关于Ajax异步
{
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{ string name = this.Request.QueryString["name"].ToString();
if (name != null)
{
SqlConnection conn = new SqlConnection("server=.;database=AS_NRM;uid=sa;pwd=sa");
DataSet ds = new DataSet();
string sql = string.Format("select count(*) from t_user where name='{0}'", name);
SqlCommand cmd = new SqlCommand(sql, conn);
int num = (int)cmd.ExecuteScalar();
if (num > 0)
{
this.Response.Write("用户名已经存在");
}
else
{
this.Response.Write("用户名可以使用!");
}
} }
}
}
还有一点疑惑.如果我这个页面的.cs页面返回的是一个数据集 例如dataset 我的ajax异步请求后 前台该如何接收并显示呢?
DataTable to json
http://dotnet.aspx.cc/file/jQuery-Receive-ashx-DataSet-JSON.aspx
另外
if (xmlhttp.readystate==4&&xmlhttp.status==200)
{
//将返回的文本打印到页面上
document.write (xmlhttp.responsetext);
}
这些都是错误的,js是严格区分大小写的
http://blog.csdn.net/sandy945/article/details/4169870
自己写的一个例子,是读取xml,希望对楼主有所帮助,
//流媒体检索返回值处理方法
function lmtselectProcess(){
document.getElementById('bcwaitload').style.display='none';
var xmlDom = req.responseXML;
var xmlRoot = xmlDom.documentElement;
var fNode = xmlRoot.getElementsByTagName('server');
var sNode;
var tbs='<table width="996" class="tbl_lmtinfonomal" cellspacing="0" cellpadding="0">'
+'<tr>'
+'<td class="tbl_title_lmtinfo20px">'
+ '<input type="checkbox" id="checkedall" onclick="checkAllOnclick(this)">'
+'</td>'
+'<td class="tbl_title_lmtinfo40px">'
+ '序号'
+'</td>'
+'<td class="tbl_title_lmtinfo160px">'
+ '流媒体名称'
+'</td>'
+'<td class="tbl_title_lmtinfo80px">'
+ '流媒体IP'
+'</td>'
+'<td class="tbl_title_lmtinfo40px">'
+ '状态'
+'</td>'
+'<td class="tbl_title_lmtinfo40px">'
+ '类型'
+'</td>'
+'<td class="tbl_title_lmtinfo45px">'
+ '是否外接存储'
+'</td>'
+'<td class="tbl_title_lmtinfo110px">'
+ '最迟录取录像时间'
+'</td>'
+'<td class="tbl_title_lmtinfo90px">'
+ '操作系统版本'
+'</td>'
+'<td class="tbl_title_lmtinfo110px">'
+ '流媒体服务器版本'
+'</td>'
+'<td class="tbl_title_lmtinfo125px">'
+ '操作系统当前时间'
+'</td>'
+'<td class="tbl_title_lmtinfo60px">'
+ '目录'
+'</td>'
+'<td class="tbl_title_lmtinfo70px">'
+ '大小(G)'
+'</td>'
+'<td class="tbl_title_lmtinfo70px">'
+ '已用(G)'
+'</td>'
+'<td class="tbl_title_lmtinfo70px">'
+ '剩余(G)'
+'</td>'
+'</tr>';
var tbe='</table>';
tbs = tbs + '<tr>';
//取得流媒体唯一标识
var lmtWybs = fNode[i].getElementsByTagName('lmtWybs')[0].firstChild.nodeValue;
tbs =tbs + '<td class="td_lmtinfowu" rowspan="5"><input type="checkbox" onclick="checkOneOnclick(this)" id="' + lmtWybs + '"/></td>'
tbs = tbs + '<td class="td_lmtinfowu" rowspan="5">' + (i + 1) + '</td>';
//取得流媒体IP
var lmtIp;
var lmtIpNode = fNode[i].getElementsByTagName('lmtIp');
{
try{
lmtIp = lmtIpNode[0].firstChild.nodeValue;
}catch(er){
lmtIp = '';
}
}
//取得流媒体类型
var lmtType;
var lmtTypeNode = fNode[i].getElementsByTagName('lmtType');
{
try{
lmtType = lmtTypeNode[0].firstChild.nodeValue;
}catch(er){
lmtType = 'IS';
}
}
var lmtConnctionStore;
var lmtConnctionStoreNode = fNode[i].getElementsByTagName('lmtIsConnectStore');
{
try{
lmtConnctionStore = lmtConnctionStoreNode[0].firstChild.nodeValue;
}catch(er){
lmtConnctionStore = '0';
}
}
//流媒体名称节点
sNode = fNode[i].getElementsByTagName('lmtName');
{
try{
nodeValue = sNode[0].firstChild.nodeValue;
decodeValue = decodeURI(decodeURI(nodeValue, 'utf-8'), 'utf-8');
tbs = tbs + '<td class="td_lmtinfowu" rowspan="5"><a onclick="updateLmtOnclick(\'' + decodeValue + '\',\'' + lmtIp + '\',\'' + lmtType + '\',\'' + lmtWybs + '\',\'' + lmtConnctionStore + '\')"><u class="u_lmtinfowu" style=" cursor: hand;">' + decodeValue + '</u></a></td>';
}catch (er){
tbs = tbs + '<td class="td_lmtinfowu" rowspan="5">---</td>';
}
}
//流媒体IP节点
sNode = fNode[i].getElementsByTagName('lmtIp');
{
try{
nodeValue = sNode[0].firstChild.nodeValue;
tbs = tbs + '<td class="td_lmtinfowu" rowspan="5">' + nodeValue + '</td>';
}catch(er){
tbs = tbs + '<td class="td_lmtinfowu" rowspan="5">---</td>';
}
}
//流媒体状态节点
sNode = fNode[i].getElementsByTagName('lmtState');
{
try{
nodeValue = sNode[0].firstChild.nodeValue;
var pic;
if(nodeValue == 1){//流媒体在线
pic = '<img src=\"../img/ico/g.gif\">';
}else{
pic = '<img src=\"../img/ico/x.gif\">';
}
tbs = tbs + '<td class="td_lmtinfowu" rowspan="5">' + pic + '</td>';
}catch(er){
tbs = tbs + '<td class="td_lmtinfowu" rowspan="5">---</td>';
}
}
//流媒体类型节点
sNode = fNode[i].getElementsByTagName('lmtType');
{
try{
nodeValue = sNode[0].firstChild.nodeValue;
var type;
if(nodeValue == 'IS'){//流媒体在线
type = '安装版';
}else if(nodeValue == 'CM'){
type = '定制版';
}else{
type = '---';
}
tbs = tbs + '<td class="td_lmtinfowu" rowspan="5">' + type + '</td>';
}catch(er){
tbs = tbs + '<td class="td_lmtinfowu" rowspan="5">---</td>';
}
}
//流媒体是否外接存储节点
sNode = fNode[i].getElementsByTagName('lmtIsConnectStore');
{
try{
nodeValue = sNode[0].firstChild.nodeValue;
alert
var type;
if(nodeValue == '1'){//流媒体在线
type = '是';
}else{
type = '否';
}
tbs = tbs + '<td class="td_lmtinfowu" rowspan="5">' + type + '</td>';
}catch(er){
tbs = tbs + '<td class="td_lmtinfowu" rowspan="5">否</td>';
}
}
//最迟录取录像时间
sNode = fNode[i].getElementsByTagName('lmtLastVideoTime');
{
try{
nodeValue = sNode[0].firstChild.nodeValue;
tbs = tbs + '<td class="td_lmtinfowu" rowspan="5">' + nodeValue + '</td>';
}catch(er){
tbs = tbs + '<td class="td_lmtinfowu" rowspan="5">---</td>';
}
}
//服务器操作系统版本
sNode = fNode[i].getElementsByTagName('sys');
{
try{
nodeValue = sNode[0].firstChild.nodeValue;
tbs = tbs + '<td class="td_lmtinfowu" rowspan="5">' + nodeValue + '</td>';
}catch(er){
tbs = tbs + '<td class="td_lmtinfowu" rowspan="5">---</td>';
}
}
//流媒体服务器版本
sNode = fNode[i].getElementsByTagName('version');
{
try{
nodeValue = sNode[0].firstChild.nodeValue;
tbs = tbs + '<td class="td_lmtinfowu" rowspan="5">' + nodeValue + '</td>';
}catch(er){
tbs = tbs + '<td class="td_lmtinfowu" rowspan="5">---</td>';
}
}
//写入时间
sNode = fNode[i].getElementsByTagName('writeInTime');
{
try{
nodeValue = sNode[0].firstChild.nodeValue;
tbs = tbs + '<td class="td_lmtinfowu" rowspan="5">' + nodeValue + '</td>';
}catch(er){
tbs = tbs + '<td class="td_lmtinfowu" rowspan="5">---</td>';
}
}
//根目录
tbs = tbs + '<td class="td_lmtinfowu">根目录</td>';
//根目录大小
sNode = fNode[i].getElementsByTagName('sizeroot');
{
try{
nodeValue = sNode[0].firstChild.nodeValue;
tbs = tbs + '<td class="td_lmtinfowu">' + nodeValue + '</td>';
}catch(er){
tbs = tbs + '<td class="td_lmtinfowu">---</td>';
}
}
//根目录已用
sNode = fNode[i].getElementsByTagName('usedroot');
{
try{
nodeValue = sNode[0].firstChild.nodeValue;
tbs = tbs + '<td class="td_lmtinfowu">' + nodeValue + '</td>';
}catch(er){
tbs = tbs + '<td class="td_lmtinfowu">---</td>';
}
}
//根目录可用
sNode = fNode[i].getElementsByTagName('availroot');
{
try{
nodeValue = sNode[0].firstChild.nodeValue;
if(nodeValue >= 5){
tbs = tbs + '<td class="td_lmtinfowu">' + nodeValue + '</td>';
}else{
tbs = tbs + '<td class="td_lmtinfowu"><font color="red">' + nodeValue + '</font></td>';
}
}catch(er){
tbs = tbs + '<td class="td_lmtinfowu">---</td>';
}
}
//结束行 和 var目录开始
tbs = tbs + '</tr><tr>' + '<td class="td_lmtinfowu">var</td>';
//var大小
sNode = fNode[i].getElementsByTagName('sizevar');
{
try{
nodeValue = sNode[0].firstChild.nodeValue;
tbs = tbs + '<td class="td_lmtinfowu">' + nodeValue + '</td>';
}catch(er){
tbs = tbs + '<td class="td_lmtinfowu">---</td>';
}
}
//var已用
sNode = fNode[i].getElementsByTagName('usedvar');
{
try{
nodeValue = sNode[0].firstChild.nodeValue;
tbs = tbs + '<td class="td_lmtinfowu">' + nodeValue + '</td>';
}catch(er){
tbs = tbs + '<td class="td_lmtinfowu">---</td>';
}
}
//var可用
sNode = fNode[i].getElementsByTagName('availvar');
{
try{
nodeValue = sNode[0].firstChild.nodeValue;
//tbs = tbs + '<td class="td_lmtinfowu">' + nodeValue + '</td>';
if(nodeValue >= 5){
tbs = tbs + '<td class="td_lmtinfowu">' + nodeValue + '</td>';
}else{
tbs = tbs + '<td class="td_lmtinfowu"><font color="red">' + nodeValue + '</font></td>';
}
}catch(er){
tbs = tbs + '<td class="td_lmtinfowu">---</td>';
}
}
//结束行 和 vod目录开始
tbs = tbs + '</tr><tr>' + '<td class="td_lmtinfowu">vod</td>';
//vod大小
sNode = fNode[i].getElementsByTagName('sizevod');
{
try{
nodeValue = sNode[0].firstChild.nodeValue;
tbs = tbs + '<td class="td_lmtinfowu">' + nodeValue + '</td>';
}catch(er){
tbs = tbs + '<td class="td_lmtinfowu">---</td>';
}
}
sNode = fNode[i].getElementsByTagName('usedvod');
{
try{
nodeValue = sNode[0].firstChild.nodeValue;
tbs = tbs + '<td class="td_lmtinfowu">' + nodeValue + '</td>';
}catch(er){
tbs = tbs + '<td class="td_lmtinfowu">---</td>';
}
}
//vod可用
sNode = fNode[i].getElementsByTagName('availvod');
{
try{
nodeValue = sNode[0].firstChild.nodeValue;
//tbs = tbs + '<td class="td_lmtinfowu">' + nodeValue + '</td>';
if(nodeValue >= 5){
tbs = tbs + '<td class="td_lmtinfowu">' + nodeValue + '</td>';
}else{
tbs = tbs + '<td class="td_lmtinfowu"><font color="red">' + nodeValue + '</font></td>';
}
}catch(er){
tbs = tbs + '<td class="td_lmtinfowu">---</td>';
}
}
//结束行 和 usr目录开始
tbs = tbs + '</tr><tr>' + '<td class="td_lmtinfowu">usr</td>';
//usr大小
sNode = fNode[i].getElementsByTagName('sizeusr');
{
try{
nodeValue = sNode[0].firstChild.nodeValue;
tbs = tbs + '<td class="td_lmtinfowu">' + nodeValue + '</td>';
}catch(er){
tbs = tbs + '<td class="td_lmtinfowu">---</td>';
}
}
//usr已用
sNode = fNode[i].getElementsByTagName('usedusr');
{
try{
nodeValue = sNode[0].firstChild.nodeValue;
tbs = tbs + '<td class="td_lmtinfowu">' + nodeValue + '</td>';
}catch(er){
tbs = tbs + '<td class="td_lmtinfowu">---</td>';
}
}
//usr可用
sNode = fNode[i].getElementsByTagName('availusr');
{
try{
nodeValue = sNode[0].firstChild.nodeValue;
//tbs = tbs + '<td class="td_lmtinfowu">' + nodeValue + '</td>';
if(nodeValue >= 5){
tbs = tbs + '<td class="td_lmtinfowu">' + nodeValue + '</td>';
}else{
tbs = tbs + '<td class="td_lmtinfowu"><font color="red">' + nodeValue + '</font></td>';
}
}catch(er){
tbs = tbs + '<td class="td_lmtinfowu">---</td>';
}
}
//结束行 和 data目录开始
tbs = tbs + '</tr><tr>' + '<td class="td_lmtinfowu">data</td>';
//data大小
sNode = fNode[i].getElementsByTagName('sizedata');
{
try{
nodeValue = sNode[0].firstChild.nodeValue;
tbs = tbs + '<td class="td_lmtinfowu">' + nodeValue + '</td>';
}catch(er){
tbs = tbs + '<td class="td_lmtinfowu">---</td>';
}
}
//data已用
sNode = fNode[i].getElementsByTagName('useddata');
{
try{
nodeValue = sNode[0].firstChild.nodeValue;
tbs = tbs + '<td class="td_lmtinfowu">' + nodeValue + '</td>';
}catch(er){
tbs = tbs + '<td class="td_lmtinfowu">---</td>';
}
}
//data可用
sNode = fNode[i].getElementsByTagName('availdata');
{
try{
nodeValue = sNode[0].firstChild.nodeValue;
//tbs = tbs + '<td class="td_lmtinfowu">' + nodeValue + '</td>';
if(nodeValue >= 5){
tbs = tbs + '<td class="td_lmtinfowu">' + nodeValue + '</td>';
}else{
tbs = tbs + '<td class="td_lmtinfowu"><font color="red">' + nodeValue + '</font></td>';
}
}catch(er){
tbs = tbs + '<td class="td_lmtinfowu">---</td>';
}
}
//结束行 和 data目录开始
tbs = tbs + '</tr>';
}
tbs = tbs + tbe;
//alert(tbs);
document.getElementById('lmtlist').innerHTML = tbs;
//alert(xmlRoot.getElementsByTagName('server')[2].getElementsByTagName('lmtName')[0].firstChild.nodeValue );
}