解决思路:

在数据库中建立类型字典式表。将下拉框需要添加的项,在数据库表里中文、英文名称对应起来。

下拉框动态绑定数据库表中需要字段。

  1. <div id="bgDiv" style="display:none;"></div>
  2. <a  class="btn-lit" href="javascript:"  onclick="bgDiv.style.display='inline';advancedQuery.style.display='';addItems()"><span>高级查询</span></a>

在高级查询单击事件中,除了显示查询框外,添加下拉框绑定字段的函数。此处为addItems().

实现代码:

  1. <script type="text/javascript">
  2. //动态绑定下拉框项
  3. function addItems() {
  4. $.ajax({
  5. url: "addItem.ashx/GetItem",    //后台webservice里的方法名称
  6. type: "post",
  7. dataType: "json",
  8. contentType: "application/json",
  9. traditional: true,
  10. success: function (data) {
  11. for (var i in data) {
  12. var jsonObj =data[i];
  13. var optionstring = "";
  14. for (var j = 0; j < jsonObj.length; j++) {
  15. optionstring += "<option value=\"" + jsonObj[j].ID + "\" >" + jsonObj[j].chinesename + "</option>";
  16. }
  17. $("#dpdField1").html("<option value='请选择'>请选择...</option> "+optionstring);
  18. }
  19. },
  20. error: function (msg) {
  21. alert("出错了!");
  22. }
  23. });
  24. };
  25. </script>

后台代码:

  1. public void ProcessRequest(HttpContext context)
  2. {
  3. //context.Response.ContentType = "text/plain";
  4. //context.Response.Write("Hello World");
  5. GetItem(context);
  6. }
  7. public void GetItem(HttpContext context)
  8. {
  9. string ReturnValue = string.Empty;
  10. BasicInformationFacade basicInformationFacade = new BasicInformationFacade();   //实例化基础信息外观
  11. DataTable dt = new DataTable();
  12. dt = basicInformationFacade.itemsQuery(); //根据查询条件获取结果
  13. ReturnValue = DataTableJson(dt);
  14. context.Response.ContentType = "text/plain";
  15. context.Response.Write(ReturnValue);
  16. //return ReturnValue;
  17. }
  1. #region dataTable转换成Json格式
  2. /// <summary>
  3. /// dataTable转换成Json格式
  4. /// </summary>
  5. /// <param name="dt"></param>
  6. /// <returns></returns>
  7. public string DataTableJson(DataTable dt)
  8. {
  9. StringBuilder jsonBuilder = new StringBuilder();
  10. jsonBuilder.Append("{\"");
  11. jsonBuilder.Append(dt.TableName.ToString());
  12. jsonBuilder.Append("\":[");
  13. for (int i = 0; i < dt.Rows.Count; i++)
  14. {
  15. jsonBuilder.Append("{");
  16. for (int j = 0; j < dt.Columns.Count; j++)
  17. {
  18. jsonBuilder.Append("\"");
  19. jsonBuilder.Append(dt.Columns[j].ColumnName);
  20. jsonBuilder.Append("\":\"");
  21. jsonBuilder.Append(dt.Rows[i][j].ToString());
  22. jsonBuilder.Append("\",");
  23. }
  24. jsonBuilder.Remove(jsonBuilder.Length - 1, 1);
  25. jsonBuilder.Append("},");
  26. }
  27. jsonBuilder.Remove(jsonBuilder.Length - 1, 1);
  28. jsonBuilder.Append("]");
  29. jsonBuilder.Append("}");
  30. return jsonBuilder.ToString();
  31. }
  32. #endregion

利用Ajax、json给前台页面中的select绑定数据源。后台通过两个函数,分别获得数据库表的数据,将数据转为Json格式返回给前台。前台在接收数据后,将数据进行解析,获得下拉框中需要绑定的字段。在绑定时,下拉框的每一项都分别绑定一个文本、value值。文本用于显示,供用户选择。value值,是用户选择了某个字段,取得这个字段的value值,进行后台的查询字段。

(转)Jquery+Ajax实现Select动态定数据的更多相关文章

  1. Jquery+Ajax实现Select动态添加数据

    https://blog.csdn.net/zhengxiangwen/article/details/46480687 最近在工作中,遇到了一个关于select的问题.一般情况下,select下拉框 ...

  2. 2016 系统设计第一期 (档案一)jQuery ajax serialize()方法form提交数据

    jQuery ajax serialize()方法form提交数据,有个很奇怪的问题,好像不能取到隐藏控件的值. //点击提交按钮保存数据 $('#btn_submitUser').click(fun ...

  3. Ajax--PHP+JQuery+Ajax解析json、XML数据、加载页面

    一.JQuery+Ajax用get.post方式提交和请求数据 知识要点: $('#userName').blur(function () { var txt = $(this).val(); $.a ...

  4. 用JQuery Ajax 与一般处理程序 请求数据无刷新,以及如何调试错误

    通过 ajax() 与 一般处理程序,请求数据库数据,实现界面无刷新. Jquery ajax 请求参数详细说明 http://www.w3school.com.cn/jquery/ajax_ajax ...

  5. java--jsp+ssh+select动态结合数据和选择(解)

    在三层体系结构和jsp合并项目,如何实现select动态绑定数据和动态选择指定的行?让我们来看看下面的: 1.首先定义一个Bean分类.它用于实例select的结合数据中的每一个id和name: pu ...

  6. jquery ajax生成Select

    function DropDownList(url, domId, defaultValue) {    /// <summary>    /// ajax生成select    /// ...

  7. SharePoint 2010 以Jquery Ajax方式更新SharePoint列表数据!

    之前本人的博客介绍了<sharepoint 2010自定义访问日志列表设置移动终端否和客户端访问系统等计算列的公式>,那如何通过Jquery提交访问日志到自定义的SharePoint的访问 ...

  8. 使用Jquery.AJAX方法和PHP后台数据交互小结

    使用jQuery的AJAX方法和后台PHP进行数据交互,交互采用的数据格式JSON格式. 我主要小小的总结了一下,我使用AJAX方法时候遇到一些小小的问题. 第一:在传递数据的时候,传输地址注意是否正 ...

  9. jQuery Ajax遍历表格,填充数据,将表格中的数据一条一条拼成Jason数组

    $.ajax({ url: baseURL + "InvoiceSale/OnQuotaInvoiceSale", //点击核销单号时,点击核销时,交互的页面           ...

随机推荐

  1. CSS 定位详解

    CSS 有两个最重要的基本属性,前端开发必须掌握:display 和 position position 属性的作用 position属性用来指定一个元素在网页上的位置,一共有5种定位方式,即posi ...

  2. HTML5测试题整理Ⅱ

    1.哪个元素被称为媒体元素的子元素? 答案:<track>. <track> 标签为媒体元素(比如 <audio> and <video>)规定外部文本 ...

  3. 《剑指offer》算法题第五天

    今日题目: 反转链表 合并两个排序的链表 树的子结构 二叉树的镜像 对称二叉树 今日重点是1反转链表,3树的子结构,以及5对称二叉树. 1. 反转链表 题目描述: 输入一个链表,反转链表后,输出链表的 ...

  4. Jmeter工具使用-分布式架构和服务器性能监控解决方案

    在对项目做大并发性能测试时,常会碰到并发数比较大(比如需要支持10000并发),单台电脑的配置(CPU和内存)可能无法支持,这时可以使用Jmeter提供的分布式测试的功能来搭建分布式并发环境. 一.J ...

  5. HTML5上传超大文件解决方案

    一.概述 所谓断点续传,其实只是指下载,也就是要从文件已经下载的地方开始继续下载.在以前版本的HTTP协议是不支持断点的,HTTP/1.1开始就支持了.一般断点下载时才用到Range和Content- ...

  6. Codevs 4019 想越狱的小明

    4019 想越狱的小明 时间限制: 1 s 空间限制: 1000 KB 题目等级 : 钻石 Diamond 题目描述 Description 这次小明来到了经典美剧<越狱>的场景里-- 它 ...

  7. 【CUDA 基础】3.3 并行性表现

    title: [CUDA 基础]3.3 并行性表现 categories: - CUDA - Freshman tags: - nvprof toc: true date: 2018-04-15 21 ...

  8. [心得]暑假DAY 5

    好久没更新博客了 最近事情太多太多 tarjan进阶,点双边双 T2压力 最大坑点:点双缩点 它不是直接把割点连成树(割点会有环) 而是用割点作”中介“,联接点双构成一颗树(所谓圆方树) 接着在上面进 ...

  9. Python dictionary 字典

    Python字典是另一种可变容器模型,且可存储任意类型对象,如字符串.数字.元组等其他容器模型. 一.创建字典字典由键和对应值成对组成.字典也被称作关联数组或哈希表.基本语法如下: dict = {' ...

  10. Mui 底部导航切换

    1.建好子模板目录 2.导航代码 <nav class="mui-bar mui-bar-tab"> <a id="defaultTab" c ...