随笔分类 - ExtJs
摘要:在B/S系统中,下拉列表(select/dropdownlist/combobox)的应用随处可见,为了增强用户体验,开发人员也常常会做一些带联想功能的下拉列表, 特别是数据项比较多的时候,用户筛选起来就会很容易。 如果考虑多选的场景,我想以下的实现方式很多时候是能够满足要求的:带复选框(checkbox)的下拉列表,应该是比较直观和方便了,也很符合用户的习惯.但是如果数据项太多的时候。滚动条会很长,有两个不足:1.用户查询自己想要的目标很困难;2.用户如果需要选择的项很多(>10项),滚动条容易遮挡住,用户可能也不知道自己到底选了哪些。于是带复选框且有联想功能的多选下拉列表...
阅读全文
摘要:这两天在做一个文章内修改的功能,由于前端选用的Extjs控件库,于是就使用Ext.form.HtmlEditor. 在使用ajax提交数据的时候,需要提交包含有html代码的数据。这时候问题就来了,不管是对数据不编码,用escape()编码、encodeURI()编码还是用encodeURIComponent()编码,提交数据是,服务器都会报错(500错误),估计是某些这些编码函数无法编码的字符造成的,正好在网上发现了一个干货,即自己写一个javascript函数,用来替换特殊字符,服务端接受后再反编码回来就可以了。函数如下:前台处理(js):function ajax_encode(...
阅读全文
摘要:刷微博已经成为大家的一种生活方式,我今天要介绍的功能就很类似刷微博。当我们需要将大数据(比如百万条数据)显示在页面上的时候,显然一次加载是不现实的,用户体验很差。当然,你可能会想到采用分也显示,但是现在的用户已经厌倦了分页的方式,他们更喜欢刷微博的方式。于是就出现了这篇文章。笔者近期的项目中,采用的前端框架是ExtJs,其提供的GridPanel足以应付一次性加载500+以上的记录,只是会让用户等待一会。但是日志的显示没那么简单,其数据一直在增加,用户也不想分页查看,而是用传统的GridPanel也不太适合。Google之后,原来ExtJs已经提供了一个插件(Ext.ux.grid.li...
阅读全文
摘要:由于项目需要,笔者最近需要实现Web客户端之间的消息的即时推送功能。功能描述如下:假设A,B,C用户登陆,内存记录下已登录的用户的信息,这时A在所在的客户端(SendInfo.aspx)页面向B发消息,则在B所在客户端页面(SendInfo.aspx)将弹出消息框。关键点有两个:1.保证客户端和服务端的连接2.保证服务端能够向客户端广播消息笔者是第一次做这样的实现,所以Google了一些资料,了解到可使用Comet,ajax轮询,WebSocket等技术实现,由于时间关系,发现有些技术不是很容易理解,这里做了一个简单Demo.希望能够达到抛砖引玉的作用,与大家分享,共同提高。笔者做了两个框架下
阅读全文
摘要:CometController.csView Code using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.Mvc;using CometMvcDemo.Models;namespace CometMvcDemo.Controllers{ public class CometController : AsyncController { private AsyncCallback cb; object extraD...
阅读全文
摘要:在做WEB表单时,为了增加用户体验,表单验证通常是必不可少的。而这样的效果通常也是通过正则表达式实现。如果在往前考虑一步,假如用户自己也能根据需要修改这些正则表达式,那就更加人性化了。在做管理系统时,除了数据库,我们用的最多的恐怕就是XML文件了,由于操作简单,我们喜欢用XML作为模版的配置文件。这里主要强调在XML中配置正则表达式的写法,笔者确实走了一些弯路。 因为XML(HTML)中,<,>,&有特殊的意义,(前两个字符用于链接签,&用于转义)不能直接使用。 XML CDATA是什么? CDATA部件在CDATA内部的所有内容都会被解析器忽略。 如果文本内容包含
阅读全文
摘要:由于业务需要,笔者刚进到一个项目组,由于没有美工,前台采用ExtJs + MVC 2 ,迭代1的项目做的还算比较顺利,至少在本机上是运行没有任何问题的,但是为了给客户演示,我兴高采烈的将网站部署在IIS 上,结果总是提示'Ext'未定义'。通过Google浏览器,按了F12调试,发现时ExtJs路径引用问题,在vs里运行正常,怎么发布之后,就出现这种情况? 仔细查看路径,是相对路径,我想这就是问题的症结所在了。 于是大胆Google,手气不错,还是有关于MVC部署的解决方案,但是试过了N多次之后,仍然毫无改观。 由于未能解决,项目进度压身,项目组开始打算换框架,他们希望
阅读全文
摘要:ExtJs学习目录懒人笔记(1) ExtJs初探ExtJs懒人笔记(2) ExtJs页面布局ExtJs懒人笔记(3) 动态Grid的实现引言 使用过.NET 服务端控件的童鞋都应该会对它的方便性记忆犹新,像GridView的使用是非常普遍的,它的好处我就不在多说了。GridVew控件是极其强大的,我这里只想强调它的一个常见功能——动态列。我们唯一要做的就是为它绑定数据,而不用关心列数的变化,一切都是自适应的。缘由 最近在使用Extjs制作页面,在使用ExrJs Grid控件时需要实现动态列的效果,也就是列名和数据都是从后台动态获取的。一个简单的功能到了客户端控件,怎么就这样麻烦呢?在网上查了一
阅读全文
摘要:ExtJs学习目录懒人笔记(1) ExtJs初探ExtJs懒人笔记(2) ExtJs页面布局ExtJs懒人笔记(3) 动态Grid的实现 页面布局,对于做Web开发者来说是一定不会陌生的,而这些一般也是由前台开发人员完成的。我以前也是和前台开发人员一起合作完成一些网站,但是让我一个人设计前台的布局,就有点犯难了。今天就简单介绍一下如何使用ExtJs的Panel来构造一个简单的页面布局。 从官方给的API可以看到Ext.Panel类继承自Ext.Container,很显然就是一个容器,我们常称为面板。通俗来讲,面板相当于一张干净的白纸,如果直接在上面添加内容,将很难控制面板中内容的显示位置,面板
阅读全文
摘要:ExtJs学习目录懒人笔记(1) ExtJs初探ExtJs懒人笔记(2) ExtJs页面布局ExtJs懒人笔记(3) 动态Grid的实现 对于大多数做后台开发人员来说,要制作一个漂亮的页面实在是一件困难的事情,好的美感+CSS的良好应用,然后通过一大堆JS实现一些很炫的效果,如果能够完成,就是个全才了。但我相信有很多人员不能完成,不过也不必担心,前人已经为我们造好了,这就是所谓控件。笔者是从事.NET开发的,相信使用过.NET的人都从.NET提供的服务端控件中享受过便利。但是事实上,随着开发经验的积累,开发人员们越来越不愿意使用服务端控件,或者说他们更喜欢在客户端通过异步通讯实现和后台的交互。
阅读全文
摘要:最近由于项目需要用到ExtJs,初次接触这个框架,特搜集相关资料,以便查阅面板中可以有工具栏,工具栏可以位于面板顶部或底部,Ext中工具栏是由Ext.Toolbar类表示。工具栏上可以存放按钮、文本、分隔符等内容。面板对象中内置了很多实用的工具栏,可以直接通过面板的tools配置选项往面板头部加入预定义的工具栏选项。比如下面的代码:Ext.onReady(function(){ new Ext.Panel({ renderTo:"hello", title:"hello",//面板标题 width:300, height:300, html:'&
阅读全文