ajax应用(实时验证,解析xml)...
时间:2010-08-19 来源:jinzhengquanqq
在 xmlHttp.open("GET","Default.aspx",true);中设置向服务器传递参数
//向服务器发送请求
function startRequest()
{
createXmlHttpRequest();
//当服务器返回响应之后,调用一个回调函数,来处理返回的数据
xmlHttp.onreadystatechange=startChange;
var text=document.getElementById("name");
var url="Default.aspx?name="+ escape(text.value);
//指定一个服务器地址,来处理客户请求的数据
xmlHttp.open("GET",url,true);
//是否需要同时发送数据
xmlHttp.send(null);
}
function startChange()
{
//客户端浏览器准备就绪
if(xmlHttp.readyState==4)
{
//服务器同时准备就绪
if(xmlHttp.status==200)
{
if(xmlHttp.responseText>"0")
{
document.getElementById("div1").innerHTML= "<font color='red'>用户名存在</font>";
}
else
{
document.getElementById("div1").innerHTML="<font color='green'>用户名可用</font>";
}
}
}
}
然后服务器端
string name=Request.QueryString["name"];
SqlConnection con = new SqlConnection("Data Source=.;Initial Catalog=MyBookShop;User Id=sa;Pwd=123");
con.Open();
string sql = string.Format("select id from Users where loginid='{0}'",name.Trim());
SqlCommand command = new SqlCommand(sql,con);
int count=Convert.ToInt32(command.ExecuteScalar());
con.Close();
Response.Write(count);
四,在ajax中解析xml字符串
使用xmlHttp.responseXML得到服务器端xml字符串
var message=xmlHttp.responseXML.getElementsByTagName("message")[0].firstChild.data;
document.getElementById("div1").innerHTML=message;
五,自动下拉菜单,模拟百度的自动提示
1,ToolkitScriptManager控件
2,文本框
3,在项目中添加weh服务
[System.Web.Script.Services.ScriptService]去掉注释
客户页面代码
<script type="text/javascript">
function refServices() {
WebService_1.HelloWorld(getResult,5);
}
function getResult(result) {
alert(result);
}
</script>
web服务代码
并添加代码:
[WebMethod]
public string[] HelloWorld(string prefixText, int count)
{
List<string> list = new List<string>();
string str = "Data Source=.;Initial Catalog=MyBookShop;User Id=sa;Pwd=123";
using(SqlConnection con=new SqlConnection (str))
{
con.Open();
string sql = "select distinct title from books where title like @prefixText";
SqlCommand com = new SqlCommand();
com.CommandText = sql;
com.Connection = con;
com.Parameters.AddWithValue("@prefixText", prefixText + "%");
SqlDataReader sdr = com.ExecuteReader();
while(sdr.Read())
{
list.Add(sdr.GetString(0));
}
}
return list.ToArray();
}