解决思路:

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

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

  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. PHP基础之如何调试PHP程序(HBuilder)

    先到这里下载HBuilder(HBuilder是最棒的PHPIDE,可以参考PHP是世界上最棒的编程语言),运行后界面如下: 打开WAMP的调试选项(XDebug):,每开启一个Xdebug选项,WA ...

  2. easyui datagrid 选中行效果

    转:http://blog.csdn.net/hzw2312/article/details/27534065 jquery easyui datagrid 获取Checked选择行(勾选行)数据 g ...

  3. jquery selected选择器 语法

    jquery selected选择器 语法 作用::selected 选择器选取被选择的 <option> 元素.直线电机生产厂家 语法:$(":selected") ...

  4. python IO密集型为什么使用多线程

    IO密集型为什么使用多线程 python多线程,可以粗浅理解只用了cpu的一个核心. 为什么IO密集型用多线程?假设我们有多个线程都在发网络请求(request, 等response),一个请求的从发 ...

  5. ASIHTTPRequest使用

    http://qk13warcraft.blog.163.com/blog/static/157549344201271633014969/ 1.创建和运行请求 创建一个同步请求 这是最简单的用法,发 ...

  6. 在Ubuntu 16.04配置VNC Server (灰屏问题解决)

      使用命令安装 sudo apt install xfce4 xfce4-goodies tightvncserver 编辑vnc启动文件,安全期间最好备份一下 mv ~/.vnc/xstartup ...

  7. koa 应用生成器

    通过应用 koa 脚手架生成工具 可以快速创建一个基于 koa2 的应用的骨架 1.全局安装 npm install koa-generator -g 2.创建项目 koa koa_demo 3.安装 ...

  8. ccf 201512-3 画图(90)

    ccf 201512-3 画图(90) #include<iostream> #include<cstring> #include<algorithm> using ...

  9. hive 使用笔记(table format;lateral view横表转纵表)

    1. create table 创建一张目标表,指定分隔符和存储格式: create table tmp_2 (resource_id bigint ,v int) ROW FORMAT DELIMI ...

  10. 小D课堂 - 零基础入门SpringBoot2.X到实战_汇总

    第1节零基础快速入门SpringBoot2.0 小D课堂 - 零基础入门SpringBoot2.X到实战_第1节零基础快速入门SpringBoot2.0_1.SpringBoot2.x课程介绍和高手系 ...