EasyUI----动态拼接EasyUI控件

最近在做的项目中,根据查询到的数据,然后动态的拼接easyUI的控件显示到界面上。在数据库中,有一个命令的表,还有一个参数的表,先到命令的表中去查询这一个设备有哪些命令,比如说,摄像头有一个转动的命令,那么就要把转动这个命令动态的拼接成EasyUI的Button按钮,然后根据命令去查询这个命令下的参数,比如说,转动是有角度的,10°,20°……,这个度就是命令下的参数,然后动态的拼接成text或者combobox的样式。

下面就把代码展示一下,B层和D层都是简单的查询,返回的是DataTable,然后我在B层加了一个转换的类,将DataTable中的数据转换成前台要显示的Json串。

 #region GetDeviceFuncParJson 动态拼接设备控制下的命令和参数
        ''' <summary>'''
        ''' 动态拼接设备控制下的命令和参数'''
        ''' </summary>'''
        ''' <param name="dt">传入的表</param>'''
        ''' <returns>json串</returns>'''
        public static string GetDeviceFuncParJson(DataTable dt)
        {

            '''定义两个空的字符串类型'''
            string stringJson = "";  //</div>
            //string total = "";
            foreach (DataRow dsFunc in dt.Rows)
            {
                stringJson += "<div style=\"\">";
                '''获取命令ID'''
                string stringFuncId = dsFunc["function_id"].ToString();
                '''拼接命令参数'''
                StateEventFunctionBLL stateEventFunctionBLL = new StateEventFunctionBLL();
                '''调用查询方法,返回参数值'''
                DataTable dtParms = stateEventFunctionBLL.GetDeviceFunctionParams(int.Parse(stringFuncId));

                '''TODO:加判断,命令是否有参数,有参数的放左边,没有参数的放右边'''
                if (dtParms.Rows.Count>=1)
                {
                    foreach (DataRow dsParms in dtParms.Rows)
                    {
                        '''拼接名称text文本框'''
                        stringJson += "<br><input id=\"\" class=\"easyui-validatebox textbox\" value=\"" + dsParms["par_name"].ToString() + "\" disabled=\"disabled\" style=\"height: 20px; margin-left:10px;\"/>";
                        '''拼接默认值combobox下拉框'''
                        stringJson += "<select id=\"\" value=\"\" class=\"easyui-combobox\" style=\"margin-left:10px; width:130px;\" name=\"dept\" data-options=\"\"><option value=\"1\">" + dsParms["par_default_value"].ToString() + "</option></select>";
                    }
                    '''如果最后多一个“,”的话,就把它删掉'''
                    if (stringJson.ToString().EndsWith("<br>"))
                    {
                        stringJson.Remove(stringJson.Length - 1, 1);
                    }
                }               

                string strChinese = dsFunc["function_name"].ToString();
                string strChiToAllSpell = ChineseToSpellBLL.ConvertToAllSpell(strChinese);
                '''拼接成命令按钮'''
                stringJson += "<a id=\"" + strChiToAllSpell + "\" style=\"margin-left:40px\" href=\"javascript:void(0)\" class=\"easyui-linkbutton\">" + dsFunc["function_name"].ToString() + "</a></div>";

            }
            '''返回拼接好的参数和命令的样式'''
            return stringJson;

        }
        #endregion

动态加载的界面如下:

动态拼接的方法,一开始的时候,感觉很难,挺复杂的,其实一步一步的去研究后你会发现,没有那么的难,学会了你就会发现,拼接的原理是类似的,再让你去拼接其他的控件或者要用到的东西的时候,就会很快的把它做出来!

时间: 2024-08-04 02:06:20

EasyUI----动态拼接EasyUI控件的相关文章

jQuery EasyUI中的日期控件DateBox修改方法_jquery

jQuery EasyUI中的日期控件DateBox很好用的,首先需要引入jquery文件,代码如下: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Basic DateBox - jQuery EasyUI Demo</title> <link rel="stylesheet" type="text/cs

动态加载控件: 常见问题解决之道

动态加载控件貌似给很多程序员都带来了困扰,经常收到这样的邮件,干脆就写下面这个示 例来演示如何解决那些常见的问题吧. 其实常见的问题通常有这样两个: 1. 通常他们都通过一个按钮来添加一个UserControl 并将它们加入PlaceHolder 容器的 Controls 中.然后页面上就会有一个另外一个按钮,这个按钮什么相关的事也没做,就是做了 一次回发.这样的情况动态添加的控件就不翼而飞了. 2. 今天收到了一封邮件说是要追加控件,和上面的情况看上去好像不一样,但实质就是同 一回事. 原因:

解决tableView中cell动态加载控件的重用问题

解决tableView中cell动态加载控件的重用问题 tableView的cell,有时候需要在运行时取得对应的数据后才能够动态的创建该cell中的控件并加载到该cell中,此时,你一定会遇到重用问题,即使你能做到该cell只根据数值加载了一回控件,你也没法保证不出现重用问题:) 效果(请注意查看,移动下面的格子时,上面出现了重用的问题) 源码: YXCell.h // // YXCell.h // YXTableView // // Copyright (c) 2014年 Y.X. All

ASP.net中动态加载控件时一些问题的总结

asp.net|动态|加载|控件|问题 经常见到有人说在ASP.net中不要使用动态控件,我想主要的原因在于使用动态控件会带来一些问题,在做项目的过程中,我将由动态加载控件引发的总是作了一个小小的总结.1 .在使用LoadControl加载控件后,用户控件中的某些控件不再响应事件. 这个问题主要是由于将控件加载放在if (!Page.IsPostBack)之内引起的,放在外面即可.在思归的blog上对此问题进行了详细的说明.2.用户控件中某些控件的响应出现问题,如某个按钮第一次选择时不触发CLI

移除动态添加的控件

动态|控件 好像问动态添加控件的人很多,问题大多集中 (1)动态添加的按钮不能提交 (2)动态添加的文本框取不到值 (3)动态添加的控件页面刷新后消失 (4)动态添加的控件页面刷新重复添加 (5)动态添加的控件不知道怎么移除 问题百出,但是其实这些都是非常简单的,可能疏忽了一点两点,补充以前写的2篇文章(以前写的比较乱) 这个页面实现: 点击添加按钮->添加一个文本框一个提交按钮->点击提交按钮输出文本框值 点击删除按钮(就是前面那个添加按钮)->移除文本框和提交按钮 using Sys

发现一个.Net中动态加载控件时关于焦点方面的Bug

动态|加载|控件 今天写一个系统框架的时候用到了动态加载,调试的时候发现程序经常会出现死锁的情况,而且死锁的时候还会打开一个"WindowsFormsParkingWindow"后台进程,跑到网上查了半天关于WindowsFormsParkingWindow的资料,结果中文的一篇没找到,蝇文的倒有几篇,对着金山词霸费了九牛二虎之力还没看出个道道来.后来干脆新建了一个项目,只写了几行代码,结果运行的时候发现还是会有死缩的情况: 1.新建一个windows应用程序 2.添加一个UserCo

如何动态加载控件以及插件编程思想(C#)

编程|动态|加载|控件 关键词:动态加载,控件,插件 控件,在实现快速开发中起着非常重要的作用,它可以将某一特定功能封装起来,供可户程序员调用,更重要的是它还可以实现插件式开发,使软件的灵活性.可扩充性大大增强.在网络上,也有很多动态加载控件.动态调用类成员等的资料.下面,我就将动态加载控件总结一下,以供大家参考.(不过由于本人水平有限,不一定有参考价值,写出来一方面是为了总结自己,以求提高,另一方面也希望各为朋友看到我的不足,给我提出宝贵意见)一.动态加载控件 动态加载,最基本用到的就是反射机

JQ 动态添加行,获取控件 ID

问题描述 JQ 动态添加行,获取控件 ID 做二级联动 第二个下拉框获取的Id不正确 求大神帮忙! 解决方案 给你的combotree增加id配置,在onSelect中通过options得到配置的id,而不是直接引用全局变量rowCount onSelect:function(rec){ var rowCount=$(this).combotree('options').id;///////// //....其他的代码

软件-vb.net 动态生成的控件,事件也动态加,怎么做呢?

问题描述 vb.net 动态生成的控件,事件也动态加,怎么做呢? 我现在做一个软件,想把下面一排的快捷按钮也做成动态生成的,也就是让用户自己选择(已存入数据库),动态按钮的事件要使用上面菜单的单击事件,如何写这样的动态事件呢?addhandler xx addressof xxx 我会使用,但是我在主界面加载的时候快捷按钮是用户自定义设置的,每次可以读出来用户设置了哪个菜单作为快捷按钮,就是无法使用菜单的事件,求大家帮帮忙. 绑定事件我会 AddHandler Button1.Click Add

winform-C# Winform 动态Add用户控件,比设置用户控件Visible的效率高还是低?

问题描述 C# Winform 动态Add用户控件,比设置用户控件Visible的效率高还是低? 如何题:C# Winform 动态Add用户控件,比设置用户控件Visible的效率高还是低? 解决方案 肯定相关代码要比设置是否可见复杂,但是动态添加相对灵活性要高,而不用有用没用的都摆在那 解决方案二: C#的Winform中使用用户控件C# WinForm中添加用户控件 解决方案三: 1.动态Add用户控件,是窗体加载后,重新绘制加载用户控件,有可能出现界面闪烁刷新效果: 2.设置用户控件Vi