热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

【Asp.Net使用EasyUI】EasyUIcombox实现联动

很多时候都会用到combox的联动效果,选择上一个combox的值就自动带出这个值对应的其它信息,比如省市联动,最近我也刚好遇到了类似的要

很多时候都会用到combox的联动效果,选择上一个combox的值就自动带出这个值对应的其它信息,比如省市联动,最近我也刚好遇到了类似的要求,是用EasyUI  combobox 控件完成的,如果是ASP.NET 里面的DropDownList的话,那就很简单了,一个SelectIndexChange事件再加一个AutoPostBack就行了,下面就是我实现的功能,其实很简单,但是对于像我这样刚接触EasyUI,并且对JQ不熟悉的人来说还是有点费神。

首先是数据库:为此我特地做了一个测试数据库用来测试效果。

tb_Factory表为最上层
tb_Factory表中的FactoryID与tb_WorkCenter表中的FactoryID为主外键关系
tb_WorkCenter表中的WorkCenterID与tb_Lines表中的WorkCenterID为主外键关系

下面是前台页面代码,引用那些JQ的就不写了:

<body><form id&#61;"form1" runat&#61;"server"><div><div id&#61;"divcenter" style&#61;"width: 400px; height: 500px; position: absolute"><div id&#61;"divQuery" class&#61;"easyui-panel" title&#61;"查询"><table style&#61;"border: 0; width: 100%"><tr style&#61;"height: 30px;"><td style&#61;"text-align: right;" class&#61;"style2" align&#61;"right">工厂&#xff1a;td><td style&#61;"text-align: left;" class&#61;"style1"><select id&#61;"SelectF" class&#61;"easyui-combobox" data-options&#61;"valueField:&#39;FactoryID&#39;,textField:&#39;FactoryName&#39;,url:&#39;Index.aspx?Oper&#61;GetAllFactory&#39;,width:200,modal:true">select>td>tr><tr style&#61;"height: 30px;"><td style&#61;"text-align: right;" class&#61;"style2" align&#61;"right">工作中心&#xff1a;td><td style&#61;"text-align: left;" class&#61;"style1"><select id&#61;"SelectW" class&#61;"easyui-combobox" data-options&#61;"valueField:&#39;WorkCenterID&#39;,textField:&#39;WorkCenterName&#39;,width:200">select>td>tr><tr style&#61;"height: 30px;"><td style&#61;"text-align: right;" class&#61;"style2" align&#61;"right">线别&#xff1a;td><td style&#61;"text-align: left;" class&#61;"style1"><select id&#61;"SelectL" class&#61;"easyui-combobox" data-options&#61;"valueField:&#39;LineID&#39;,textField:&#39;LineName&#39;,width:200">select>td>tr><tr style&#61;"height: 30px;"><td style&#61;"text-align: right;" class&#61;"style2" align&#61;"right">日期:td><td style&#61;"text-align: left; font-weight: bold; padding-left: 10px;" class&#61;"style1"><input id&#61;"StartDate_WorkGroup" type&#61;"text" style&#61;"width: 90px;" class&#61;"easyui-datebox" /><input id&#61;"EndDate_WorkGroup" type&#61;"text" style&#61;"width: 90px;" class&#61;"easyui-datebox" />td>tr>table>div>div>div>form>
body>


以下是脚本代码&#xff0c;通过JQ来实现combox的onSelect事件&#xff0c;重新创建新的URL&#xff0c;通过这个URL来使目标combox重新加载数据&#xff0c;在API上看到的方法&#xff1a;reload。


下面在cs文件里面根据前台的请求&#xff0c;分别作出相应的处理&#xff0c;比如前台请求查询工厂&#xff0c;那后台就执行查询工厂的方法&#xff0c;其它的也是一样&#xff1a;

1 using System;
2 using System.Collections.Generic;
3
4 using System.Web;
5 using System.Web.UI;
6 using System.Web.UI.WebControls;
7
8 namespace Test
9 {
10 public partial class Index : System.Web.UI.Page
11 {
12 protected void Page_Load(object sender, EventArgs e)
13 {
14 if (Request.QueryString["Oper"] !&#61; null)
15 {
16 string _FactoryID;
17 string _WorkCenterID;
18
19 //根据前台的请求进行分别处理。
20 switch (Request.QueryString["Oper"])
21 {
22 //初始化的时候加载所有的工厂。
23 case "GetAllFactory":
24 GetAllFactory();
25 break;
26 case "GetWorkCenterListByFactoryID":
27 //前台发出请求的时候会传递一个工厂ID的参数进来&#xff0c;这里接收到这个参数&#xff0c;
28 //作为条件进行查询该工厂下面的工作中心。
29 _FactoryID &#61; Request.QueryString["FactoryID"];
30 GetWorkCenterByFactoryID(_FactoryID);
31 break;
32 case "GetLineListByWorkCenterID":
33 //同上
34 _WorkCenterID &#61; Request.QueryString["WorkCenterID"];
35 GetLineByWorkCenterID(_WorkCenterID);
36 break;
37 }
38 }
39 }
40
41 //*******************************************
42 //以下部分的函数都是将DataTable类型的结果转换为JSON格式
43 //*******************************************
44
45 ///


46 /// Get all factory
47 ///

48 ///
49 public void GetAllFactory()
50 {
51 var dt &#61;new DAL().GetAllFactoryList();
52 var json &#61; JsonHelper.ConvertDataTable(dt);
53 Response.Write(json);
54 Response.End();
55 }
56
57 ///
58 /// Get all workcenter by factory id
59 ///

60 /// Factory ID
61 ///
62 public void GetWorkCenterByFactoryID(string FactoryID)
63 {
64 var dt &#61; new DAL().GetWorkCenterListByFactoryID(FactoryID);
65 var json &#61; JsonHelper.ConvertDataTable(dt);
66 Response.Write(json);
67 Response.End();
68 }
69
70 ///
71 /// Get all lines by workcenter id
72 ///

73 /// Workcenter ID
74 ///
75 public void GetLineByWorkCenterID(string WorkCenterID)
76 {
77 var dt &#61; new DAL().GetLineListByWorkCenterID(WorkCenterID);
78 var json &#61; JsonHelper.ConvertDataTable(dt);
79 Response.Write(json);
80 Response.End();
81 }
82 }
83 }

1 using System;
2 using System.Collections.Generic;
3 using System.Web;
4 using System.Data;
5 namespace Test
6 {
7 public class DAL
8 {
9 ///


10 /// Get all factory
11 ///

12 ///
13 public DataTable GetAllFactoryList()
14 {
15 string strSql &#61; "SELECT FactoryID,FactoryName FROM dbo.tb_Factory (NOLOCK) ORDER BY 2 ";
16 return new DataAccess().GetDataTable(strSql);
17 }
18
19 ///
20 /// Get all workcenter by factory id
21 ///

22 /// Factory ID
23 ///
24 public DataTable GetWorkCenterListByFactoryID(string FactoryID)
25 {
26 string strSql &#61; "SELECT WorkCenterID,WorkCenterName FROM tb_WorkCenter (NOLOCK) WHERE FactoryID&#61;&#39;" &#43; FactoryID &#43; "&#39; ORDER BY WorkCenterName";
27 return new DataAccess().GetDataTable(strSql);
28 }
29
30 ///
31 /// Get all lines by workcenter id
32 ///

33 /// Workcenter ID
34 ///
35 public DataTable GetLineListByWorkCenterID(string WorkCenterID)
36 {
37 string strSql &#61; " SELECT LineID,LineName FROM tb_Lines (NOLOCK) WHERE WorkCenterID&#61;&#39;" &#43; WorkCenterID &#43; "&#39; ORDER BY LineName";
38 return new DataAccess().GetDataTable(strSql);
39 }
40 }
41 }

最后看一下效果&#xff1a;

 

PS:

要注意一点:我总是不习惯JQ的那些写法,比如说每次开始和结尾的两个括号,要是跟C#里面一样就好了,上下各一个对齐,感觉JQ里面的括号特别"不好看",括号多了就容易看错,我在这个问题上犯了好几次错误了.

例子源码

转:https://www.cnblogs.com/allen0118/p/3800918.html



推荐阅读
  • php连接mysql显示数据,php连接mysql数据库的算法思想
    本文目录一览:1、怎么用php显示mysql数据表数据 ... [详细]
  • 如何使用Java获取服务器硬件信息和磁盘负载率
    本文介绍了使用Java编程语言获取服务器硬件信息和磁盘负载率的方法。首先在远程服务器上搭建一个支持服务端语言的HTTP服务,并获取服务器的磁盘信息,并将结果输出。然后在本地使用JS编写一个AJAX脚本,远程请求服务端的程序,得到结果并展示给用户。其中还介绍了如何提取硬盘序列号的方法。 ... [详细]
  • javascript  – 概述在Firefox上无法正常工作
    我试图提出一些自定义大纲,以达到一些Web可访问性建议.但我不能用Firefox制作.这就是它在Chrome上的外观:而那个图标实际上是一个锚点.在Firefox上,它只概述了整个 ... [详细]
  • 如何在php中将mysql查询结果赋值给变量
    本文介绍了在php中将mysql查询结果赋值给变量的方法,包括从mysql表中查询count(学号)并赋值给一个变量,以及如何将sql中查询单条结果赋值给php页面的一个变量。同时还讨论了php调用mysql查询结果到变量的方法,并提供了示例代码。 ... [详细]
  • PDO MySQL
    PDOMySQL如果文章有成千上万篇,该怎样保存?数据保存有多种方式,比如单机文件、单机数据库(SQLite)、网络数据库(MySQL、MariaDB)等等。根据项目来选择,做We ... [详细]
  • 某天看jQuey的deffered对象的时候,突然想起了曾经面试的一个关于ajax的问题,就是同时发送三个ajax请求,当三个请求都成功的时候输出1,当时不知道jQuery的$.w ... [详细]
  • 《PHP精粹:编写高效PHP代码》——2.7节设计数据库
    本节书摘来自华章社区《PHP精粹:编写高效PHP代码》一书中的第2章,第2.7节设计数据库,作者:(美 ... [详细]
  • Nginx使用AWStats日志分析的步骤及注意事项
    本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
  • 本文介绍了使用AJAX的POST请求实现数据修改功能的方法。通过ajax-post技术,可以实现在输入某个id后,通过ajax技术调用post.jsp修改具有该id记录的姓名的值。文章还提到了AJAX的概念和作用,以及使用async参数和open()方法的注意事项。同时强调了不推荐使用async=false的情况,并解释了JavaScript等待服务器响应的机制。 ... [详细]
  • 目录实现效果:实现环境实现方法一:基本思路主要代码JavaScript代码总结方法二主要代码总结方法三基本思路主要代码JavaScriptHTML总结实 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • 本文由编程笔记小编整理,介绍了PHP中的MySQL函数库及其常用函数,包括mysql_connect、mysql_error、mysql_select_db、mysql_query、mysql_affected_row、mysql_close等。希望对读者有一定的参考价值。 ... [详细]
  • 安卓select模态框样式改变_微软Office风格的多端(Web、安卓、iOS)组件库——Fabric UI...
    介绍FabricUI是微软开源的一套Office风格的多端组件库,共有三套针对性的组件,分别适用于web、android以及iOS,Fab ... [详细]
author-avatar
我爱左_470
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有