.NET中一般处理程序(ashx)在Ajax中的使用

前端之家收集整理的这篇文章主要介绍了.NET中一般处理程序(ashx)在Ajax中的使用前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

.NET中一般处理程序(ashx)在Ajax中的使用


NET框架中有一个文件类型是一般处理文件(.ashx)。可以在ajax开发中作为服务器端使用。特别是当在请求停留在一个页面的时候,下面举个例子--实现html下拉列表的级连更新。

(1)ddlInnerJoin.aspx代码

<head runat="server"> <title>无标题页</title> <script type ="text/javascript" src="ddlInnerJoin.js"></script> </head> <body> <form id="form1" runat="server"> <div> <select id="major" onchange ="startRequest();"> <option value ="1">软件技术</option> <option value ="2" >网络技术</option> </select> <select id="class"> </select> </div> </form> </body>

(2)ddlInnerJoin.js代码

var xmlHttp; var requesttype=""; function createXmlHttp() { if(window.XMLHttpRequest) { xmlHttp=new XMLHttpRequest();//mozilla浏览器 } else if(window.ActiveXObject) { try { xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");//IE旧版本 } catch(e) { } try { xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");//IE新版本 } catch(e) { } if(!xmlHttp) { window.alert("不能创建XMLHTTPREQUEST对象!"); return false; } } } function startRequest() { createXmlHttp(); //使用GET方式 var url="ddlInnerJoin.ashx?major="+document.getElementById("major").options.value; xmlHttp.open("GET",url,true); xmlHttp.onreadystatechange=bindclass; xmlHttp.send(null); } function bindclass() { if(xmlHttp.readyState==4) { if(xmlHttp.status==200) { var selclass=document.getElementById("class"); //如果被动(被激发的)下拉有内容,要首先清空 while(selclass.hasChildNodes()) { var node=selclass.children(0) selclass.removeChild(node); } //获取响应内容 var result=xmlHttp.responseText; //分割以方便绑定 var optiontext=result.split(' '); //将分割后的内容绑定到被动下拉列表 for(var i=0;i<optiontext.length;i++) { var optionnode=document.createElement("OPTION"); optionnode.text=optiontext[i]; selclass.add(optionnode); } } } }

(3)ddlInnerJoin.ashx代码

<%@ WebHandler Language="C#" Class="ddlInnerJoin" %> using System; using System.Web; //由于要访问数据库,引入命名空间 using System.Data.sqlClient; using System.Data; public class ddlInnerJoin : IHttpHandler { public void ProcessRequest (HttpContext context) { context.Response.ContentType = "text/plain"; string majorid = context.Request.Params["major"].ToString().Trim(); string major = ""; //避免不识别汉字 if (majorid == "1") { major = "软件技术"; } else if (majorid == "2") { major = "网络技术"; } //从数据库提取数据 sqlConnection conn = new sqlConnection("server=.;database=Tuition;uid=sa;pwd=sa;"); sqlDataAdapter da = new sqlDataAdapter("select classname from dictblclass where classname like '" + major + "%'",conn); DataSet ds = new DataSet(); da.Fill(ds); //定义响应文本的格式,以返回 string result = ""; foreach (DataRow row in ds.Tables[0].Rows) { result +=row[0].ToString().Trim() + " "; } context.Response.Write(result.Trim ()); //context.Response.Write("Hello World"); }

public bool IsReusable { get { return false; } } }

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/huang7914/archive/2008/04/30/2346447.aspx

猜你在找的Ajax相关文章