国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

ajax實現動態下拉框示例

2019-11-19 18:02:51
字體:
來源:轉載
供稿:網友

許多頁面上都涉及有下拉框,即select標簽。對于簡單的下拉框,被選擇的數據是不需要改變的,我們可以用<option></option>寫死。這樣下拉框的數據永遠都是那幾條。

示例:

<select>   <option>信息一</option>   <option>信息二</option>   <option>信息三</option>   <option>信息四</option> </select>

但是有些項目或者工程是需要將數據庫中的數據呈現出來并提供選擇的,下拉的內容會隨數據庫中數據的變化而變化。首先我們有asp組件可以幫我們做這這件事情,DropDownList組件,只需要將數據庫中查詢得到的數據添加進該組件中,在前臺即可以顯示出動態下拉的效果。如果想更有新意,不依賴于傳統組件,ajax就是個不錯的選擇。下面一步步來通過ajax實現動態下拉的效果。

1.js發出ajax請求:

$(document).ready(function () {  $.ajax({    timeout: 3000,    async: false,    type: "POST",    url: "WareHouse.ashx",    dataType: "json",    data: {      warehouse: $("#issued_sub_key_c").val(),    },    success: function (data) {      for (var i = 0; i < data.length; i++) {        $("#issued_sub_key_c").append("<option>" + data[i].Name + "</option>");      }    }  });});

ajax請求WareHouse.ashx(一般處理程序)來獲得數據,請求成功后將返回的json數據附加到id為issued_sub_key_c的select標簽。值得注意的是這里將async的屬性改為了false,async的默認狀態為true,即為異步。值改為false就是同步了。但是當async為false的時候,ajax請求完數據之前,瀏覽器一直處于鎖死狀態,這樣會讓使用者認為程序崩潰了,所以就人為的添加了一個超時(timeout),這樣就不會出現程序崩潰的假象?;氐皆掝}開始,為什么要將async改為false呢?原因就是當ajax是異步請求的時候進入到頁面后出現下拉框數據還未同步,下拉框是空白數據(可以自己體驗體驗)。所以我們需要利用同步的特性并配合超時來完成下拉框的數據同步。

2.一般處理程序:從數據庫返回的數據是List<string>類型,我們需要自己定義一個toJson()方法將list轉化為json數據,然后返回json數據。

public string toJson(List<string> str)    {      StringBuilder json = new StringBuilder();      if (str == null)      {        return "null";      }      json.Append("[");      foreach (var item in str)      {        json.Append("{/"Name/":/"");        json.Append(item);        json.Append("/"},");      }      return json.ToString().Substring(0, json.ToString().LastIndexOf(",")) + "]";    }    /*得到并關聯倉庫(select標簽)*/    public void ProcessRequest(HttpContext context)    {      SubinventoryDC subinventorydc = new SubinventoryDC();      List<string> list = new List<string>();      list = subinventorydc.getAllSubinventory();      string json = toJson(list);      context.Response.ContentType = "text/plain";      context.Response.Write(json);    }

3.前臺頁面:前臺只需要定義一個id為issued_sub_key_c的select標簽。注意select標簽須得有一個name,后臺正是通過name來取得選中數據的值。取值方法:Request.Form["issued_sub_key_c"]。

<select id="issued_sub_key_c" name="issued_sub_key_c"> </select>

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 梅河口市| 策勒县| 金坛市| 洮南市| 乌兰浩特市| 万安县| 辽阳市| 咸丰县| 汾阳市| 徐水县| 南城县| 谢通门县| 蓬溪县| 乐安县| 临西县| 石门县| 承德县| 汤原县| 无棣县| 锡林郭勒盟| 昭觉县| 南召县| 江北区| 琼海市| 新昌县| 宁夏| 中牟县| 长沙市| 鹤峰县| 潮安县| 黄骅市| 鄂托克前旗| 昌江| 东乌珠穆沁旗| 蓝田县| 申扎县| 淮阳县| 紫阳县| 四子王旗| 鸡泽县| 台州市|