您好,登錄后才能下訂單哦!
這期內容當中小編將會給大家帶來有關如何在ASP.NET中使用無框架的Ajax,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
我們需要兩個頁面a.aspx、b.aspx,a頁面代碼如下(就用最常見的,兩個下拉列表連動的例子):
<body> <form id="Form1" method="post" runat="server"> <select id="AList" onchange="SetBList()"> <option value="0">A</option> <option value="1">B</option> <option value="3">C</option> </select> <select id="BList"></select> </form> </body> |
當a頁面觸發onchange事件后,我們進入寫在a頁面的SetBList()方法中,這里將完整的js列出來:
<script language="javascript"> var xmlHttp; function SetBList() { var avalue = document.getElementById("AList").value; var url = "b.aspx?Avalue=" + avalue; createXMLHttpRequest(); // 創建xmlHttp對象 xmlHttp.onreadystatechange = handleStateChange; // 當xmlHttp狀態碼發生改變時,調用handleStateChage方法 xmlHttp.open("GET", url, true); // GET方法發送請求 xmlHttp.send(null); } function BListInitial() { // 先清空一下BList的option clearBList(); var blist = document.getElementById("BList"); // 獲取BList對象 var rs = xmlHttp.responseXML.getElementsByTagName("City"); // 從返回xml文檔中,讀取<City>標簽的數據 // 這個循環取值的地方,卡了我一會,將xmlHttp.responseXML創建成一個xml文檔,然后找讀文檔的方法,但問題是不同瀏覽器創建xml文檔的方法不一樣 for(var i=0;i<rs.length;i++) { var option = document.createElement("OPTION"); option.text = rs[i].getElementsByTagName("CityName"); option.value = rs[i].getElementsByTagName("CityCode"); blist.options.add(option); } } function clearBList() { var ven = document.getElementById("VendorList"); while(ven.options.length > 0) ven.removeChild(ven.childNodes[0]); } function handleStateChange() { if(xmlHttp.readyState == 4) { if(xmlHttp.status == 200) { BListInitial(); } } } function createXMLHttpRequest() { // IE if (window.ActiveXObject) { xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); } // Mozilla else if (window.XMLHttpRequest) { xmlHttp = new XMLHttpRequest(); } } </script>
b.aspx頁面將html部分全部刪除,僅僅留一行:
<%@ Page language="c#" Codebehind="b.aspx.cs" AutoEventWireup="false" Inherites="Test.Ajax" %> |
原因是我們a頁面要求返回的xml文檔,因此,我們將Html標簽部分刪除。然后在b頁面的Page_Load方法中,對數據庫進行操作,然后數據寫成xml的格式,例如:
// 數據庫操作,得到DataTable dt string xml = "<Data>"; foreach(DataRow row in dt.Rows) { xml += "<City>"; xml += "<CityName>" + row["CityName"] + "</CityName>"; xml += "<CityCode>" + row["CityCode"] + "</CityCode>"; xml += "</City>"; } xml += "</Data>"; // 清頁面格式,寫xml Response.ClearContent(); Response.Cache.SetNoStore(); Response.ContentType = "text/xml"; Response.ContentEncoding = System.Text.Encoding.UTF8; Response.Write(xml); |
在整體運行之前可以先將b頁面測試一下,如果得到類似如下結果,則說明,數據部分是沒問題的。
- <Data> - <Vendor> <VendorId>7</VendorId> <VendorName>千千</VendorName> </Vendor> </Data> |
上述就是小編為大家分享的如何在ASP.NET中使用無框架的Ajax了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。