EasyUI combox实现联动
多的时间将被用于combox联动效应。一个选择combox的值自己主动出这值有关相应的其他信息,例如省市联动。最近,我刚刚会见了班似要求,随着EasyUI combobox 控制完成。假设ASP.NET 里面DropDownList的话,那就非常easy了,一个SelectIndexChange事件再加一个AutoPostBack即可了,以下就是我实现的功能,事实上非常easy,可是对于像我这样刚接触EasyUI。而且对JQ不熟悉的人来说还是有点费神。
首先是数据库:为此我特地做了一个測试数据库用来測试效果。
tb_Factory表为最上层
tb_Factory表中的FactoryID与tb_WorkCenter表中的FactoryID为主外键关系
tb_WorkCenter表中的WorkCenterID与tb_Lines表中的WorkCenterID为主外键关系
以下是前台页面代码,引用那些JQ的就不写了:
<body>
<form id="form1" runat="server">
<div>
<div id="divcenter" style="width: 400px; height: 500px; position: absolute">
<div id="divQuery" class="easyui-panel" title="查询">
<table style="border: 0; width: 100%">
<tr style="height: 30px;">
<td style="text-align: right;" class="style2" align="right">
工厂:
</td>
<td style="text-align: left;" class="style1">
<select id="SelectF" class="easyui-combobox" data-options="valueField:'FactoryID',textField:'FactoryName',url:'Index.aspx? Oper=GetAllFactory',width:200,modal:true">
</select>
</td>
</tr>
<tr style="height: 30px;">
<td style="text-align: right;" class="style2" align="right">
工作中心:
</td>
<td style="text-align: left;" class="style1">
<select id="SelectW" class="easyui-combobox" data-options="valueField:'WorkCenterID',textField:'WorkCenterName',width:200">
</select>
</td>
</tr>
<tr style="height: 30px;">
<td style="text-align: right;" class="style2" align="right">
线别:
</td>
<td style="text-align: left;" class="style1">
<select id="SelectL" class="easyui-combobox" data-options="valueField:'LineID',textField:'LineName',width:200">
</select>
</td>
</tr>
<tr style="height: 30px;">
<td style="text-align: right;" class="style2" align="right">
日期:
</td>
<td style="text-align: left; font-weight: bold; padding-left: 10px;" class="style1">
<input id="StartDate_WorkGroup" type="text" style="width: 90px;" class="easyui-datebox" />至
<input id="EndDate_WorkGroup" type="text" style="width: 90px;" class="easyui-datebox" />
</td>
</tr>
</table>
</div>
</div>
</div>
</form>
</body>
下面是脚本代码,通过JQ来实现combox的onSelect事件,又一次创建新的URL,通过这个URL来使目标combox又一次载入数据。在API上看到的方法:reload。
<script language="javascript" type="text/javascript">
$(document).ready(function () {
//Start:居中显示
$("#divcenter").css("left", (($(document).width()) / 2 - (parseInt($("#divcenter").width()) / 2)) + "px");
$("#divcenter").css("top", (($(document).height()) / 2 - (parseInt($("#divcenter").height()) / 2)) + "px");
//End:居中显示
//Start:设置combox的选择事件
$('#SelectF').combobox({
onSelect: function () {
var url = 'Index.aspx?Oper=GetWorkCenterListByFactoryID&FactoryID=' + $('#SelectF').combobox('getValue');
$('#SelectW').combobox('reload', url);
}
});
$('#SelectW').combobox({
onSelect: function () {
var url = 'Index.aspx?
Oper=GetLineListByWorkCenterID&WorkCenterID=' + $('#SelectW').combobox('getValue');
$('#SelectL').combobox('reload', url);
}
});
//End:设置combox的选择事件
});
</script>
以下在cs文件中面依据前台的请求,分别作出对应的处理。比方前台请求查询工厂,那后台就运行查询工厂的方法。其他的也是一样:
using System;
using System.Collections.Generic; using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls; namespace Test
{
public partial class Index : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (Request.QueryString["Oper"] != null)
{
string _FactoryID;
string _WorkCenterID; //依据前台的请求进行分别处理。 switch (Request.QueryString["Oper"])
{
//初始化的时候载入全部的工厂。
case "GetAllFactory":
GetAllFactory();
break;
case "GetWorkCenterListByFactoryID":
//前台发出请求的时候会传递一个工厂ID的參数进来。这里接收到这个參数,
//作为条件进行查询该工厂以下的工作中心。
_FactoryID = Request.QueryString["FactoryID"];
GetWorkCenterByFactoryID(_FactoryID);
break;
case "GetLineListByWorkCenterID":
//同上
_WorkCenterID = Request.QueryString["WorkCenterID"];
GetLineByWorkCenterID(_WorkCenterID);
break;
}
}
} //*******************************************
//以下部分的函数都是将DataTable类型的结果转换为JSON格式
//******************************************* /// <summary>
/// Get all factory
/// </summary>
/// <returns></returns>
public void GetAllFactory()
{
var dt =new DAL().GetAllFactoryList();
var json = JsonHelper.ConvertDataTable(dt);
Response.Write(json);
Response.End();
} /// <summary>
/// Get all workcenter by factory id
/// </summary>
/// <param name="FactoryID">Factory ID</param>
/// <returns></returns>
public void GetWorkCenterByFactoryID(string FactoryID)
{
var dt = new DAL().GetWorkCenterListByFactoryID(FactoryID);
var json = JsonHelper.ConvertDataTable(dt);
Response.Write(json);
Response.End();
} /// <summary>
/// Get all lines by workcenter id
/// </summary>
/// <param name="WorkCenterID">Workcenter ID</param>
/// <returns></returns>
public void GetLineByWorkCenterID(string WorkCenterID)
{
var dt = new DAL().GetLineListByWorkCenterID(WorkCenterID);
var json = JsonHelper.ConvertDataTable(dt);
Response.Write(json);
Response.End();
}
}
}
using System;
using System.Collections.Generic;
using System.Web;
using System.Data;
namespace Test
{
public class DAL
{
/// <summary>
/// Get all factory
/// </summary>
/// <returns></returns>
public DataTable GetAllFactoryList()
{
string strSql = "SELECT FactoryID,FactoryName FROM dbo.tb_Factory (NOLOCK) ORDER BY 2 ";
return new DataAccess().GetDataTable(strSql);
} /// <summary>
/// Get all workcenter by factory id
/// </summary>
/// <param name="FactoryID">Factory ID</param>
/// <returns></returns>
public DataTable GetWorkCenterListByFactoryID(string FactoryID)
{
string strSql = "SELECT WorkCenterID,WorkCenterName FROM tb_WorkCenter (NOLOCK) WHERE FactoryID='" + FactoryID + "' ORDER BY WorkCenterName";
return new DataAccess().GetDataTable(strSql);
} /// <summary>
/// Get all lines by workcenter id
/// </summary>
/// <param name="WorkCenterID">Workcenter ID</param>
/// <returns></returns>
public DataTable GetLineListByWorkCenterID(string WorkCenterID)
{
string strSql = " SELECT LineID,LineName FROM tb_Lines (NOLOCK) WHERE WorkCenterID='" + WorkCenterID + "' ORDER BY LineName";
return new DataAccess().GetDataTable(strSql);
}
}
}
最后看一下效果:
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvY2hlbnBlbmcwMTE4/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">
版权声明:本文博主原创文章,博客,未经同意不得转载。
EasyUI combox实现联动的更多相关文章
- 【Asp.Net使用EasyUI】EasyUI combox实现联动
很多时候都会用到combox的联动效果,选择上一个combox的值就自动带出这个值对应的其它信息,比如省市联动,最近我也刚好遇到了类似的要求,是用EasyUI combobox 控件完成的,如果是A ...
- vs2013+MVC3.0+EasyUI的ComboBox联动使用(二)
vs2013+MVC3.0+EasyUI的ComboBox联动使用(二) 简单介绍:在vs2013(.net4.0)中使用MVC3.0对于EasyUI中ComboBox的联动使用. 载入Comb ...
- easyUI combox静态动态联动
easyUI重写了select,取而代之的是combobox,有如下几种方式可以创建一个combobox 1.使用select标签,并加上class="easyui-combobox&quo ...
- easyUI下拉列表三级联动
首先是先想好数据库的搭建,通过地区id,地区名称,上级地区id就可以实现,所有省市区的数据 例如: DAO层 service层 Servlet 页面 <!DOCTYPE html> < ...
- C/C++ Qt 数据库与ComBox多级联动
Qt中的SQL数据库组件可以与ComBox组件形成多级联动效果,在日常开发中多级联动效果应用非常广泛,例如当我们选择指定用户时,我们让其在另一个ComBox组件中列举出该用户所维护的主机列表,又或者当 ...
- jquery easyui combox实用方法记录
// combogrid刷新 $(“#cc").combogrid('grid').datagrid('load'); // combogrid设置默认选中哪一行 $('#cc').comb ...
- jquery easyui combox不能编辑只能选择
$('#tts').combobox({ editable:false });
- easyui combox 手动添加项
$('#comzwcf').combobox({ valueField: 'id', textField: 'text', }); $.ajax({ url: '/Provider/HandlerIr ...
- easyui combox 随便不存在的值,清空
onHidePanel: function () { var valueField = $(this).combobox("options").valueField; var va ...
随机推荐
- Swift学习笔记7:关闭
闭包 捕 引用和将其存储在任意常量和变量的上下文. Swift 你会管理 捕获 过程中涉及到的内存操作. 在 函数 章节中介绍的全局和嵌套函数实际上也是特殊的闭包,闭包採取例如以下三种形式之中的一个: ...
- 程序猿常识--OJ系统和ACM测试考试大全
OJ它是Online Judge缩写系统,来在线检測程序源码的正确性. 著名的OJ有RQNOJ.URAL等. 国内著名的题库有北京大学题库.浙江大学题库等. 国外的题库包含乌拉尔大学.瓦拉杜利德大学题 ...
- Chrome 扩展 最近的历史 HistoryBar v1.1
说明 以前用过一段时间傲游浏览器,渐渐的习惯了它的鼠标手势和一些细微的人性化的功能.比方地址栏左边的"近期訪问的页面"button.能够方便的找到近期 20 条历史记录. wate ...
- SystemTrayDemo
遗留问题:win7 java.awt.TrayIcon的displayMessage方法没有生效,通知消息不能正常弹出. 许多桌面环境都有一个区域用于放置在后台运行的程序的图标,这些程序偶尔会将某些 ...
- OpenWrt wireless通过配置uci生效
[转载请注明出处:钱正柱 http://blog.csdn.net/qianguozheng/article/details/24412673] 配置无线 vi /etc/config/wireles ...
- [WebView其中一项研究]:Web Apps基本介绍
今天,我们开始了解WebView,以及Web Apps发展,从主要内容Android实际的例子来解释正式文件和后续. (博客地址:http://blog.csdn.net/developer_jian ...
- TFS:TF30042 数据库已满 处理方法
原文:TFS:TF30042 数据库已满 处理方法 今天早上,公司打来电话,说TFS(Team Foundation Server)微软源代码管理软件签入不了,报错:TF30042 数据库已满. 经过 ...
- cocos2dx 3.x Value、Vector和Map意识
1. Value cocos2d::Value 这包括一个非常大的数字原生类型(int,float,double,bool,unsigned char,char* 和 std::string)外 加s ...
- Docker安装应用程序(Centos6.5_x64)
Docker安装应用程序(Centos6.5_x64) Authoer::jom_ch@2014/7/23 Docker官方网站 http://www.docker.com/ 一,安装EPEL 关于E ...
- MVC — 第 6 天
7 天玩转 ASP.NET MVC — 第 6 天 目录 第 1 天 第 2 天 第 3 天 第 4 天 第 5 天 第 6 天 第 7 天 0. 前言 欢迎来到第六天的 MVC 系列学习中.希望 ...