日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

c#.net下簡單的Ajax例子

 藍調(diào)書軒 2015-11-18
 

我們需要兩個頁面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>

 

 

當(dāng)a頁面觸發(fā)onchange事件后,我們進入寫在a頁面的SetBList()方法中,這里將完整的js列出來:

<script language="javascript">
var xmlHttp;

function SetBList() {
    var avalue 
= document.getElementById("AList").value;

    var url 
= "b.aspx?Avalue=" + avalue;
    createXMLHttpRequest();  
// 創(chuàng)建xmlHttp對象
    xmlHttp.onreadystatechange = handleStateChange;  // 當(dāng)xmlHttp狀態(tài)碼發(fā)生改變時,調(diào)用handleStateChage方法
    xmlHttp.open("GET", url, true);   // GET方法發(fā)送請求
    xmlHttp.send(null);
}

function BListInitial() {
    
// 先清空一下BList的option
    clearBList();

    var blist 
= document.getElementById("BList");  // 獲取BList對象
    var rs = xmlHttp.responseXML.getElementsByTagName("City");  // 從返回xml文檔中,讀取<City>標(biāo)簽的數(shù)據(jù)
    
// 這個循環(huán)取值的地方,卡了我一會,將xmlHttp.responseXML創(chuàng)建成一個xml文檔,然后找讀文檔的方法,但問題是不同瀏覽器創(chuàng)建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標(biāo)簽部分刪除。然后在b頁面的Page_Load方法中,對數(shù)據(jù)庫進行操作,然后數(shù)據(jù)寫成xml的格式,例如:

// c.net下簡單的Ajax例子 - sikaodelang - sikaodelang的博客c.net下簡單的Ajax例子 - sikaodelang - sikaodelang的博客    
// 數(shù)據(jù)庫操作,得到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頁面測試一下,如果得到類似如下結(jié)果,則說明,數(shù)據(jù)部分是沒問題的。 

- <Data>
    
- <Vendor>
        
<VendorId>7</VendorId> 
       
<VendorName>千千</VendorName> 
   
</Vendor>
</Data>

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多