麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > JavaScript > 正文

ajax實(shí)現(xiàn)動(dòng)態(tài)下拉框示例

2019-11-19 18:02:51
字體:
供稿:網(wǎng)友

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

示例:

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

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

1.js發(fā)出ajax請(qǐng)求:

$(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請(qǐng)求WareHouse.ashx(一般處理程序)來獲得數(shù)據(jù),請(qǐng)求成功后將返回的json數(shù)據(jù)附加到id為issued_sub_key_c的select標(biāo)簽。值得注意的是這里將async的屬性改為了false,async的默認(rèn)狀態(tài)為true,即為異步。值改為false就是同步了。但是當(dāng)async為false的時(shí)候,ajax請(qǐng)求完數(shù)據(jù)之前,瀏覽器一直處于鎖死狀態(tài),這樣會(huì)讓使用者認(rèn)為程序崩潰了,所以就人為的添加了一個(gè)超時(shí)(timeout),這樣就不會(huì)出現(xiàn)程序崩潰的假象。回到話題開始,為什么要將async改為false呢?原因就是當(dāng)ajax是異步請(qǐng)求的時(shí)候進(jìn)入到頁面后出現(xiàn)下拉框數(shù)據(jù)還未同步,下拉框是空白數(shù)據(jù)(可以自己體驗(yàn)體驗(yàn))。所以我們需要利用同步的特性并配合超時(shí)來完成下拉框的數(shù)據(jù)同步。

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

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(",")) + "]";    }    /*得到并關(guān)聯(lián)倉庫(select標(biāo)簽)*/    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.前臺(tái)頁面:前臺(tái)只需要定義一個(gè)id為issued_sub_key_c的select標(biāo)簽。注意select標(biāo)簽須得有一個(gè)name,后臺(tái)正是通過name來取得選中數(shù)據(jù)的值。取值方法:Request.Form["issued_sub_key_c"]。

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

以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持武林網(wǎng)。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 在线观看中文字幕av | 久久人人爽人人爽人人片av高清 | 久久久综合久久久 | 麻豆传传媒久久久爱 | 成人高清网站 | 久久精品欧美视频 | 国产精品久久久久久影视 | 黄色网欧美 | 国产精品高潮视频 | 黄色毛片一级 | av在线播放观看 | 成年人免费高清视频 | 小视频免费在线观看 | 欧美成人一级 | 日本欧美一区二区三区在线播 | chinesexxxx极品少妇 | 亚洲免费毛片基地 | 国产午夜免费视频 | 午夜久 | 国人精品视频在线观看 | 国产精彩视频在线 | 手机在线看片国产 | 久久网站免费 | 一区二区三区欧洲 | 日本高清一级片 | 久久久成人精品视频 | 精品亚洲一区二区三区 | 国产精品www | 伊久在线| 5xsq在线视频 | 免费国产成人高清在线看软件 | 成人综合一区二区 | 国产福利视频 | 精品一区二区三区中文字幕 | 爽妇网国产精品 | 在线看免费观看av | 日韩视频一区二区 | 操操影视 | 中文字幕精品在线视频 | 51国产偷自视频区视频小蝌蚪 | 日韩av电影在线免费观看 |