随笔分类 - .Net
摘要:移动端到服务端通信往往会发生很多莫名的异常情况,如何有效的监控proxy异常,给用户友好的用户体验呢?Proxy给我提供了异常exception的监听事件,只需要监控该项目即可。Sencha Touch Store的基类如下:Ext.define('HzyApp.store.Base', { extend: 'Ext.data.Store', config: { proxy: { scope: this, listeners: { exception: function (proxy, resp...
阅读全文
摘要:1.目录移动框架简介,为什么选择Sencha Touch?环境搭建创建项目框架,框架文件简介创建简单Tabpanel案例自定义图标的方式WebApp产品测试和发布HTML5离线缓存发布成Android/IOS本地app应用移动框架简介,为什么选择Sencha Touch?目前市面上,移动应用web框架,也算是风生水起,不断涌现,各个都称自己最牛逼。常见的几个框架主要有jquery Mobile,Dojo Moble,Sencha Touch,我这里是极端推荐Sencha Touch,至于它多优秀,不是我说了算,只有你亲自用过,做过项目之后才能领悟他的魅力;至于从没用过的口水党,请绕道。Senc
阅读全文
摘要:使用 HTML5,通过创建 cache manifest 文件,可以轻松地创建 web 应用的离线版本。什么是应用程序缓存(Application Cache)?HTML5 引入了应用程序缓存,这意味着 web 应用可进行缓存,并可在没有因特网连接时进行访问。应用程序缓存为应用带来三个优势:离线浏览 - 用户可在应用离线时使用它们速度 - 已缓存资源加载得更快减少服务器负载 - 浏览器将只从服务器下载更新过或更改过的资源。浏览器支持所有主流浏览器均支持应用程序缓存,除了 Internet Explorer。HTML5 Cache Manifest 实例下面的例子展示了带有 cache mani
阅读全文
摘要:ST2.2版本竟然又改变了sass中自定义图标的添加方式,在2.2以前采用的是这种base64的方式,详见:http://www.cnblogs.com/qidian10/archive/2012/11/19/2776953.html但ST2.2.1中所有的图标icon都采用字体的形式展现,也就是说你看到的并不是图片,而是一种字体。Sencha Touch采用http://pictos.cc/font/作为图标库,类似的字体图标库还有很多。那么采用font的形式,我们如何自定义自己的icon呢?其实比以前更简单了比如说你想用第一排的第3个图标,那么它对应的字符是“c”,你只需要将下面的css加
阅读全文
摘要:vs默认web调试工具中并不支持.json后缀的mime类型。如何解决,两个方案:局部单应用:web.config:。。。。 还一个方案,IIS Express全局(未测试):1、若要设置 MIME 类型,请在 IIS Express 安装目录中运行以下命令: appcmd set config /section:staticContent /+[fileExtension='string',mimeType='string']2、变量 fileExtension 字符串是文件扩展名,变量 mimeType 字符串是文件类型说明。3、例如,要为扩展名为“.xyz
阅读全文
摘要:MVC开发的时候,难免会用到XML格式数据,如果将XML数据当作字符串直接返回给前台,其实这不是真正意义上的xmL,你可以看到ContentType是text/html而非XML类型,这往往会造成前端架构无法解析的情况,例如Extjs。错误实例:public string GetXmlData(){ return "";}//通过跟踪,会发现ContentType:text/html类型的定义XmlAction:using System;using System.Collections.Generic;using System.IO;using System.Linq;us
阅读全文
摘要:当在treegrid中,锁定treecolumn列的时候,是无法通过执行getView().getChecked()获取选中的节点的,这是tree的一个bug,详见:http://www.sencha.com/forum/showthread.php?264678官方也明确的给出了解决方案:我们只需要在获取view的时候稍加判断,该bug即可解决,代码如下:var viewTree=this.getModuleGrid().getView();if(viewTree.lockedView){//核心代码 viewTree = viewTree.lockedView;}var checkedN.
阅读全文
摘要://官方推荐this.getModuleGrid().getRootNode().cascadeBy(function () { this.set("checked", false); if (ids.indexOf(this.data["Id"].toString()) > -1) { this.set("checked", true); } });//通过Children方式GetChilds: function (idArray, node) { ts = this...
阅读全文
摘要:如上图所示,当修改某个属性值,成功提交后,dirty的小三角不会自动清除,这个是官方treegrid的一个bug,目前尚未解决。bug:http://www.sencha.com/forum/showthread.php?141144-4.0.2a-TreeStore-doesn-t-clear-dirty-flag-on-updated-record目前的解决办法:在TreeStore的最末端,添加如下代码:onUpdateRecords: function (records, operation, success) { records = operation.records;...
阅读全文
摘要:需要反射的DLL里的一个类:namespace ElegantWM.WebUI.Areas.Admin.Controllers{ [Description("功能模块管理")] public class ModuleController : BaseController { [Action] [Description("根据系统编号,获取系统的功能模块")] [HttpGet] public string Get(Guid sysId) { ... return ...
阅读全文
摘要:WebDAV 是超文本传输协议 (HTTP) 的一组扩展,为 Internet 上计算机之间的编辑和文件管理提供了标准.利用这个协议用户可以通过Web进行远程的基本文件操作,如拷贝、移动、删除等。在IIS 7.0中,WebDAV是作为独立扩展模块,需要单独进行下载,而IIS 7.5中将集成WebDAV,然而WebDav把Put,Delete给咔嚓了。所以在IIS 7.5上部署的RESTful服务(WCF Data Service,WCF Rest Service,ASP.NET Web API,ASP.NET MVC)就悲剧了,当发送Put请求就会发生HTTP Error 405.0 – Me
阅读全文
摘要:上篇文章中http://www.cnblogs.com/qidian10/p/3209439.html我们介绍了如何使用Grid的查询组建,而且将查询的参数传递到了后台。那么我们后台如何介绍参数,并且转换为EntityFramework的条件呢?首先我们获取Ext.ux.grid.feature.Searching的参数,上篇文章中我们很容易发现,查询传递到后台的是fields和query参数,其中fields是参加查询的列数组,query是关键字。首先我们定义个类,接收参数namespace ElegantWM.EntityModel{ public class ExtGridSear...
阅读全文
摘要:背景Extjs4.2 默认提供的Search搜索,功能还是非常强大的,只是对于国内的用户来说,还是不习惯在每列里面单击好几下再筛选,于是相当当初2.2里面的搜索,更加的实用点,于是在4.2里面实现。国际惯例,先上图参考文献https://gist.github.com/aghuddleston/3297619/http://gridsearch.extjs.eu/国外的大牛已经帮我们实现了在4.0中的应用,但是到4.2还需要做少许变更才可以使用。修改后的源代码如下[复制如下代码,放到ux/grid/features/Searching.js]:// JavaScript Document//
阅读全文
摘要:using System;using System.Collections.Generic;using System.Linq;using System.Linq.Expressions;using System.Text;namespace ElegantWM.Tools{ public class ParameterRebinder : ExpressionVisitor { private readonly Dictionary map; public ParameterRebinder(Dictionary map) { ...
阅读全文
摘要:项目中经常涉及到页面DTO更新,保存到数据库的操作,这就必然牵扯到DTO和持久层对象的转换,常见的第三方库有:java:dozer.net: AutoMapper看到AutoMapper已经许久没更新了,而且项目中没必要用这么大的东西,于是自己实现了一个简易DTO到Entity的转换器。实现的功能自定义的AutoMapper主要实现了如下几点功能:1.DTO字段忽略转换[AutoMapping(Ignore=true)]public DateTime CreateTime { get; set; }2.DTO字段和Entity的强制映射[AutoMapping(EntityColumn=&qu
阅读全文
摘要:IEnumerable userlist=xxxx;string[] ids=userlist.select(u=>u.id).toArray();
阅读全文
摘要:本案例使用了Ext.Tree.Panel的如下知识点:1.刷新、重新加载Tree,定位到上次的节点位置2.Tree的右键操作3.Extjs4.x Tree获取当前选中的节点4.新增、修改、删除Tree节点5.修改tree节点的属性,例如text,iconCls,leaf等6.treedata rest proxy7.treeStore.sync的同步回调方法8.Extjs4.x Tree获取父节点,获取子节点Chirldrens9.Extjs4.x TreePanel的展开,收缩10.Extjs4.x Tree的拖拽操作treeviewdragdrop插件,响应类型有before,after,
阅读全文
摘要:Ext.data.IdGenerator.get('uuid').generate()结果:a9c4efb8-06c9-4c2e-8a70-bb36a69e053e更多介绍:http://docs.sencha.com/extjs/4.2.1/#!/api/Ext.data.UuidGenerator
阅读全文
摘要:跟Extjs3.0不同Extjs4.2的写法如下:idPath = selNode.getPath("id"); tree.getStore().load({ node: tree.getRootNode(), callback: function () { tree.expandPath(idPath, 'id'); } });
阅读全文
摘要:refs:Object[]5Array of configs to build up references to views on page. For example:Ext.define("MyApp.controller.Foo",{ extend:"Ext.app.Controller", refs:[{ref:'list', selector:'grid'}],});这将会产生一个this.getList()方法,该方法会通过Ext.ComponentQuery去页面中获取组件为grid的组件The followi
阅读全文