.NET中一般处理程序(ashx)在Ajax中的使用
2011-05-04 16:27
513 查看
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
相关文章推荐
- .NET中一般处理程序(ashx)在Ajax中的使用--下拉列表的动态级连
- .NET中一般处理程序(ashx)在Ajax中的使用
- .NET中一般处理程序(ashx)在Ajax中的使用--下拉列表的动态级连
- .NET中一般处理程序(ashx)在Ajax中的使用--下拉列表的动态级连
- AjaxFileUpLoad 文件异步上传Demo(模仿官方网站,后台使用.net一般处理程序)
- asp.net- ajax简单入门使用方法,通过一般处理程序ashx进行处理
- .NET中一般处理程序(ashx)在Ajax中的使用--下拉列表的动态级连
- 一般处理程序ashx 处理JQuery的Ajax()请求
- 使用一般处理程序.ashx
- .NET使用一般处理程序生成验证码!
- 一般处理程序(后缀为.ashx)里面使用Session,直接使用Session会报实例错误
- 牛腩(9)-.NET使用一般处理程序生成验证码!
- .NET使用一般处理程序生成验证码
- .NET使用一般处理程序生成验证码!
- AJAX提交到Handler.ashx一般处理程序返回json数据 (字符串拼接方式)
- asp.net 使用一般处理程序和ajax post实现登录以及记住密码
- .NET使用一般处理程序生成验证码
- .Net中使用一般处理程序生成验证码
- C# 使用ajax把数据从页面传到一般处理程序中去
- 一般处理程序(.ashx)中使用Session