FoxOne---一个快速高效的BS框架
FoxOne---一个快速高效的BS框架--(1)
FoxOne---一个快速高效的BS框架--WEB控件属性编辑器
最近一段时间内,我都在花时间开发一个快速的BS开发框架,我将她命名为FoxOne,她基于ASP.NET MVC,支持SQL SERVER,MY SQL,ORACLE等主流数据库;
具有数据访问,日志记录,环境变量,基于角色的访问控制(页面,控件,数据,支持分级授权),众多的控件(Table,Form,Tree,Tab,Panel,ToolTip.....),等一般的BS开发框架常见的功能,除此之外,我还开发了一套可以在线设计页面的设计器,这是FOXONE最强大的地方,下面我将演示如何在最短时间内快速通过在线设计的方式配置出一个树型列表页面。
首先在页面设计中新建一个页面,其中页面地址是以后将会用于URL访问的地址(如下列的页面将来的地址为/Page/TastPage),标题为页面的title

保存后我们就新建好了一个页面。
接下来我们进入页面的设计界面

进来后,默认已经出现了我们选择的布局类型,其中有”添加组件“的按钮的地方,就是可以在里面添加控件的区域,如下图如示:

我们先要在左边添加一个树型控件,注意在组件列表中,我已经为FOXONE默认添加了十几个我们在做这种企业管理系统常用到的控件,而且支持扩展,只要实现PageControlBase基类,所有扩展的控件也会在这里出现:

保存后,右边的树型控件的属性设置区域,会进一步出现其它复杂属性的设置,例如:数据源。在FOXONE中,所有的数据源都分为三类,一类是可以为树型控件填充数据源的ICascadeDataSource,一类为下拉框,单选框,多选框提供数据源的IKeyValueDataSource,最后一类是为列表提供数据源的IListDataSource,所有实现这三类接口的数据源,在设计器中都会在相应的控件要用到的地方出现以供选择。在下面的示例中我们直接使用数据表数据源。

然后描述一下在对应树型控件的id,name,pId的字段分别是什么。最后保存就行了

这时候我们来看一下页面的效果

其实,对于数据源,我还设计了N个默认的过滤器,对数据源可以进行一些简单的数据过滤,在此先不演示。
继续在右边添加表格控件,如下图,我们先使用”自动生成列“(意思是直接显示数据源返回的所有列,这有点像ASP.NET WEBFORM的GridView的AutoGenerateColumn)

保存后,为表格选择一种数据源,继续用数据表,如下图

选择好后,直接保存,这时候页面的效果就出来了,如下图

上图的效果中,表格还有几个问题:
1.有N多列是不想显示的
2.列头要重命名
3.某些列的值要转换后再显示(如ParentId列,应该显示父级名称,不是父级ID)
4.某些列的显示要格式化
下面我们一一来修改这些问题,首先,我们要把”自动生成列“改为”否“

然后切换到”表格列“选项卡,点”从数据源获取列“, 这时候会自动从指定好的数据源中把每一列取回来,这时候我们可以对这些列进行增删配置,

我们先删掉一列不需要的列,剩下的列如下图:

这时候我们来看看页面的效果:

好,已经显示了指定的列了,现在对列名进行修改:

列名重命名为”组织名称“,然后顺便演示一下输出格式的玩法,这个是参照ASP.NET WEBFORM的GridView的列格式化了

顺便把”最后更新时间“的格式和列名也改一下,

这时候再来看看效果:注意 组织名称 那一列已经都多了个hello world了,最后更新时间也按照指定的格式显示了。

下面来修改下一个问题,我们要对ParentId列进行转换,把父级ID 转为 父级名称,点开列编辑,切换到”列转换器“那一栏,FOXONE默认已经集成了几个常用的列转换,如:用户名称,组织名称,角色名称,数据字典,枚举等等。

设置好转换器后,再来看一下效果,这时候父级列已经是显示名称了。

上面的图中还有Status列是编码,这一列的值来自系统中的枚举,所以进它进行枚举转换,如下图

绑定好转换器后,列值也发生了变化,如下图

最后要让左边的树的点击引起右边表格控件的联动变化,这时候需要出来页面的基础信息里添加一小段JS,指定树型控件的nodeClick事件响应,在里面对table进行条件干涉,然后让table重新刷新(其实就是把参数拼起来,通过POST的方式提交到后台,让TABLE的数据源重新绑定一次),顺便提一句,这里的所有控件都是局部刷新的,但肯定不是像ASP.NET WEBFORM的那种局部刷新实现得这么烂。。。

同时也要给表格控件的数据源添加一个过滤器,这个过滤器是FOXONE默认有的,会自动根据当前FORM和URL参数中的值对数据源的某些列进行字段一一匹配过滤,当前这些过滤器,数据源,转换器等等都是实现某一接口的,可以非常方便进行扩展。

最后看一下点击树控件的效果。。。

这只是FOXONE冰山一角的内容,如果觉得这个框架有存在的意义,就顶起来吧,我会写多点文章,这个框架目前在公司使用8个月,同时也是支持原来的MVC开发的,而且很多配置好的页面和控件都可以局部引用到自己开发的页面中去使用。。
如果有兴趣的可以加入群里来交流一下,群号:581523872
FoxOne---一个快速高效的BS框架的更多相关文章
- FoxOne---一个快速高效的BS框架--(2)
FoxOne---一个快速高效的BS框架--(1) FoxOne---一个快速高效的BS框架--(2) FoxOne---一个快速高效的BS框架--(3) FoxOne---一个快速高效的BS框架-- ...
- FoxOne---一个快速高效的BS框架--数据访问(Dao)
FoxOne---一个快速高效的BS框架--(1) FoxOne---一个快速高效的BS框架--(2) FoxOne---一个快速高效的BS框架--(3) FoxOne---一个快速高效的BS框架-- ...
- FoxOne---一个快速高效的BS框架--生成增删改查
FoxOne---一个快速高效的BS框架--(1) FoxOne---一个快速高效的BS框架--(2) FoxOne---一个快速高效的BS框架--(3) FoxOne---一个快速高效的BS框架-- ...
- FoxOne---一个快速高效的BS框架--WEB控件属性编辑器
FoxOne---一个快速高效的BS框架--(1) FoxOne---一个快速高效的BS框架--(2) FoxOne---一个快速高效的BS框架--(3) FoxOne---一个快速高效的BS框架-- ...
- FoxOne---一个快速高效的BS框架--(4)
FoxOne---一个快速高效的BS框架--(1) FoxOne---一个快速高效的BS框架--(2) FoxOne---一个快速高效的BS框架--(3) FoxOne---一个快速高效的BS框架-- ...
- 如何快速高效地完成一个Android项目?
本文的内容有别于之前文章中纯技术的探讨,会从业务逻辑.技术.团队和方法论的角度探讨如何快速高效地完成一个Android项目.当然,快速高效是有前提的,第一,本文依然是从研发的角度来谈如何把控项目的,而 ...
- 一个快速、高效的Levenshtein算法实现——代码实现
在网上看到一篇博客讲解Levenshtein的计算,大部分内容都挺好的,只是在一些细节上不够好,看了很长时间才明白.我对其中的算法描述做了一个简单的修改.原文的链接是:一个快速.高效的Levensht ...
- 快速入门系列--WebAPI--03框架你值得拥有
接下来进入的是俺在ASP.NET学习中最重要的WebAPI部分,在现在流行的互联网场景下,WebAPI可以和HTML5.单页应用程序SPA等技术和理念很好的结合在一起.所谓ASP.NET WebAPI ...
- 基于TILE-GX实现快速数据包处理框架-netlib实现分析【转】
最近在研究suricata源码,在匹配模式的时候,有tilegx mpipe mode,转载下文,了解一下. 原文地址:http://blog.csdn.net/lhl_blog/article/de ...
随机推荐
- 如何查看linux系统下的各种日志文件 linux 系统日志的分析大全
日志分类: 1. 连接时间的日志 连接时间日志一般由/var/log/wtmp和/var/run/utmp这两个文件记录,不过这 两个文件无法直接cat查看,并且该文件由系统自动更新,可以通过如下: ...
- 动态IP无法获取默认网关,显示0.0.0.0的解决办法
IP地址使用自动获取IP方式,可以获取到IP地址和子网掩码,默认网关无法获取,显示0.0.0.0,通过修复Winsock和LSP可以解决该问题,具体步骤如下:一.修复winsock1.单击开始> ...
- 杂记之web篇
问题1:通过POST方式提交给后台的数据出现了乱码,用部分浏览器测试却是好的. 解决办法: 在web.config文件中加上 <globalization responseEncoding=&q ...
- mysql学习(用户权限管理)
1. 添加数据库用户 create user 'username'@'host' identified by 'password'; 提示: 如果想让该用户可以从其他主机登陆,host可以设置为'%' ...
- c语言学习,模拟栈操作
1.stack.c模拟栈操作函数的实现 #include<stdio.h> #include<stdlib.h> ; static char *stack;//数据栈 ;//栈 ...
- python 的文件操作。
20.文件操作: 1.打开文件: f = open('db','r') 只读 ; f = open('db','w') 只写 ...
- 关于多本小说站的SEO—从”易读中文网”获得的心得体会
从目前国内的网站流量来说,电影站,小说站,游戏站等的流量占总流量的比例还是很高的,许多站长把目光投入到了这几个方面,本文就着重来说对于小说站,尤其是多本小说站的SEO心得体会! 对于小说站来说,只要排 ...
- Hive是什么!
Hive是什么! 一直想抽个时间整理下最近的所学,断断续续接触hive也有半个多月了,大体上了解了很多Hive相关的知识.那么,一般对陌生事物的认知都会经历下面几个阶段: 为什么会出现?解决了什么问题 ...
- ubuntu12.04安装Vmware Tools
在VMware下安装Ubuntu,那么必须安装VMware-tools,才能获得更好的体验,包括屏幕分辨率.声音.和windows共享剪贴板等等. 个人觉得安装vmware-tools很重要的几点: ...
- 【问题】pod setup 问题
安装pod setup 的时候,可能会安装失败,可以多试几次,但是如果一直失败,那就是由问题了. 解决办法: 1. 分别执行下面命令卸载cocoapods和xcodeproj,如果你的机器上面有多个版 ...