许多页面上都涉及有下拉框,即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>
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# ajax动态下拉框
# ajax动态生成下拉框
# ajax
# 下拉框
# ajax请求后台得到json数据后动态生成树形下拉框的方法
# 下拉菜单的级联操作(ajax)
# ajax提交到java后台之后处理数据的实现
# 利用ajax传递数组及后台接收的方法详解
# ajax异步读取后台传递回的下拉选项的值方法
# 数据库中
# 要将
# 的是
# 是个
# 不需要
# 可以用
# 只需
# 更有
# 会让
# 还未
# 只需要
# 后将
# 上都
# 转化为
# 几条
# 即为
# 来完成
# 大家多多
# 有一个
相关文章:
大连网站设计制作招聘信息,大连投诉网站有哪些?
上海网站制作网站建设公司,建筑电工证网上查询系统入口?
电商网站制作价格怎么算,网上拍卖流程以及规则?
宿州网站制作公司兴策,安徽省低保查询网站?
网站制作服务平台,有什么网站可以发布本地服务信息?
如何用y主机助手快速搭建网站?
网站建设制作、微信公众号,公明人民医院怎么在网上预约?
如何规划企业建站流程的关键步骤?
如何快速建站并高效导出源代码?
如何高效利用200m空间完成建站?
Python如何创建带属性的XML节点
攀枝花网站建设,攀枝花营业执照网上怎么年审?
如何选择高效稳定的ISP建站解决方案?
相亲简历制作网站推荐大全,新相亲大会主持人小萍萍资料?
如何选择最佳自助建站系统?快速指南解析优劣
个人摄影网站制作流程,摄影爱好者都去什么网站?
如何通过.red域名打造高辨识度品牌网站?
制作网站怎么制作,*游戏网站怎么搭建?
如何零基础在云服务器搭建WordPress站点?
三星网站视频制作教程下载,三星w23网页如何全屏?
详解jQuery停止动画——stop()方法的使用
北京网页设计制作网站有哪些,继续教育自动播放怎么设置?
公司网站的制作公司,企业网站制作基本流程有哪些?
如何在Golang中使用replace替换模块_指定本地或远程路径
如何优化Golang Web性能_Golang HTTP服务器性能提升方法
专业型网站制作公司有哪些,我设计专业的,谁给推荐几个设计师兼职类的网站?
如何选择CMS系统实现快速建站与SEO优化?
北京的网站制作公司有哪些,哪个视频网站最好?
关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)
C++如何将C风格字符串(char*)转换为std::string?(代码示例)
音乐网站服务器如何优化API响应速度?
如何通过VPS建站无需域名直接访问?
文字头像制作网站推荐软件,醒图能自动配文字吗?
javascript中的try catch异常捕获机制用法分析
公司网站制作费用多少,为公司建立一个网站需要哪些费用?
齐河建站公司:营销型网站建设与SEO优化双核驱动策略
子杰智能建站系统|零代码开发与AI生成SEO优化指南
威客平台建站流程解析:高效搭建教程与设计优化方案
如何通过宝塔面板实现本地网站访问?
建站主机核心功能解析:服务器选择与网站搭建流程指南
香港服务器网站生成指南:免费资源整合与高速稳定配置方案
极客网站有哪些,DoNews、36氪、爱范儿、虎嗅、雷锋网、极客公园这些互联网媒体网站有什么差异?
如何用PHP工具快速搭建高效网站?
建站之星安装步骤有哪些常见问题?
南京做网站制作公司,南京哈发网络有限公司,公司怎么样,做网页美工DIV+CSS待遇怎么样?
,如何利用word制作宣传手册?
免费网站制作模板下载,除了易企秀之外还有什么H5平台可以制作H5长页面,最好是免费的?
已有域名如何快速搭建专属网站?
定制建站是什么?如何实现个性化需求?
岳西云建站教程与模板下载_一站式快速建站系统操作指南
*请认真填写需求信息,我们会在24小时内与您取得联系。