- 浏览: 583089 次
- 性别:
- 来自: 杭州
文章分类
- 全部博客 (268)
- ext基础 (72)
- Java基础 (68)
- jquery (14)
- oracle (21)
- sqlserver (7)
- linux (2)
- webserver (1)
- C/C++ (1)
- sql (9)
- IDE (2)
- java 智能卡 (1)
- mysql (6)
- ibatis (2)
- struts2 (3)
- cvs (1)
- 服务器 (1)
- html (11)
- freemarker (4)
- liferay (2)
- jMS (1)
- iphone (1)
- c# (1)
- Android (11)
- wince (6)
- javascript (4)
- ps (1)
- hibernate (1)
- 其他 (3)
最新评论
-
ilyq:
请问,px.gif 在哪里
斜线表头 -
jisang:
没看懂,第一个org.js和最后的js什么关系,可否发我一份完 ...
用ExtJS 实现动态载入树(Load tree) -
JavaStudyEye:
我去,能否搞个正确点的,,,
<#list ...
freemarker 遍历map 对象 -
PangSir:
大爱,简直是大爱!!困扰这么久以来的问题,虽然知道是CSS的问 ...
ExtJs checkbox radiobox 问题 汇总 -
skynet_java:
有demo嘛!邮箱:think_world@foxmail.c ...
消息推送服务需求 - 服务器开发、客户端开发
下面这个是主界面的设计
Ext.onReady(function() { Ext.QuickTips.init(); Ext.BLANK_IMAGE_URL = 'ext/s.gif'; // ---------------------------------------------好友列表树 var Tree = Ext.tree; // 定义(可以异步加载)根节点 var root = new Tree.AsyncTreeNode({ id : '0', text : '目录根节点' }); // 开始构建树面板 var treePanel = new Tree.TreePanel({ id : 'im-tree', root : root, loader : new Tree.TreeLoader({ // 从数据库加载树形结构数据 dataUrl : '/graduationPrj/treePro.action' }), deferredRender : false, region : 'west', title : '在线用户', border : false, rootVisible : false, lines : false, autoScroll : true, enableDD : false, animate : false, split : true, width : 200, minSize : 175, maxSize : 400, collapsible : false, selModel : new Ext.tree.MultiSelectionModel(), margins : '0 0 0 5' }); /** * @method expandAll * @private * @description 展开所有节点 */ var expandAll = function() { treePanel.root.expand(true, false); } /** * @method updateUserList * @private * @description 定时更新在线用户列表,刷新时间为10分钟 */ var updateUserList = function() { treePanel.root.reload(); treePanel.root.expand(true, false); setTimeout(updateUserList, 1000 * 10); } /** * @method treeDoubleClick * @private * @description 添加‘双击事件’处理 当双击节点时,弹出聊天对话框 */ var treeDoubleClick = function(node, e) { if (node.isLeaf()) { addOrOpenTab(node.text); } } treePanel.on('dblclick', treeDoubleClick); /** * @method treeDoubleClick * @private * @description 判断tab有没有存在,如果不存在添加新tab */ var addOrOpenTab = function(nodeText) { var n = tabs.getComponent(nodeText); if (!n) { n = tabs.add({ 'id' : nodeText, 'title' : nodeText, layout : 'border', closable : true, items : [new Ext.Panel({ region : 'center', title : '聊天记录 ', autoScroll : true, html : '<div id=' + nodeText + 'div></div>', tools : [{ id : 'refresh', qtip : '注意:如果长时间没有收到对方回应,试一下', // hidden:true, handler : function(event, toolEl, panel) { // refresh logic } }] })] }); } tabs.setActiveTab(n); } // ---------------------------------------------公共聊天室 var logPanel = new Ext.Panel({ region : 'center', title : '聊天记录 ', id : 'history_panel', autoScroll : true, html : '<div id=publicChat></div>', tools : [{ id : 'refresh', qtip : '注意:如果长时间没有收到对方回应,试一下', // hidden:true, handler : function(event, toolEl, panel) { // refresh logic } }] }); /** * @method treeDoubleClick * @private * @description 公用的输入文本框 */ var chatPanel = new Ext.Panel({ region : 'south', title : '聊天啦', layout : 'fit', // split:true, autoScroll : true, height : 250, // minSize: 200, // maxSize: 500, collapsible : true, margins : '0 0 0 0', items : { xtype : 'form', baseCls : 'x-plain', autoHeight : true, autoWidth : true, bodyStyle : 'padding:10 10px 0;', defaults : { anchor : '98%' }, items : [{ xtype : 'htmleditor', height : 150, id : 'htmleditor', hideLabel : true }] }, bbar : [{ text : '发送请输入Ctrl-Enter', handler : function() { var t = tabs.getActiveTab().getId(); if (t == 'allChat') { sendPublicMsg(); } else { sendPrivateMsg(); } } } , '-', { text : '清除', handler : function() { Ext.getCmp("htmleditor").reset(); } }] }); var allChatPanel = new Ext.Panel({ id : 'allChat', title : '公共聊天室', layout : 'border', items : [logPanel] }); /** * 构建标签面板,出现在主显示页面,用于显示信息 */ var tabs = new Ext.TabPanel({ region : 'center', deferredRender : false, id : 'tabs', resizeTabs : true, minTabWidth : 115, tabWidth : 135, height : 100, autoScroll : true, enableTabScroll : true, plugins : new Ext.ux.TabCloseMenu(), items : [allChatPanel] }); tabs.setActiveTab(allChatPanel); var sendPublicMsg = function() { var content_value = Ext.getCmp("htmleditor").getValue(); var t = tabs.getActiveTab().getId(); if (content_value.trim() == '') { Ext.Msg.alert("消息提示", "您没有输入消息文本内容!"); Ext.getCmp("htmleditor").focus(); return; } var receivers_values = []; var tree = Ext.getCmp('im-tree'); var receivers = tree.getSelectionModel().getSelectedNodes(); for (i = 0; i < receivers.length; ++i) { receivers_values.push(receivers[i].attributes.sessionId); } if (receivers_values.length == 0) { Ext.Msg.alert("消息提示", '您没有选择接收者!'); tree.focus(); return; } // alert(receivers_values.length); if (receivers_values.length > 1) { Ext.Msg.alert("消息提示", '只能选择一个接收者!'); tree.focus(); return; } document.getElementById('publicChat').innerHTML = t + '中的aaadasdasdasd'; } var sendPrivateMsg = function() { var content_value = Ext.getCmp("htmleditor").getValue(); var t = tabs.getActiveTab().getId(); if (content_value.trim() == '') { Ext.Msg.alert("消息提示", "您没有输入消息文本内容!"); Ext.getCmp("htmleditor").focus(); return; } document.getElementById(t + 'div').innerHTML = t + '中的aaadasdasdasd'; document.getElementById("publicChat").innerHTML = t + '中的aaadasdasdasd'; } /** * @method treeDoubleClick * @private * @description 主界面,添加各个元素 */ var viewport = new Ext.Viewport({ layout : 'border', items : [treePanel, { region : 'center', layout : 'border', autoScroll : true, items : [tabs, chatPanel] } ] }); expandAll(); updateUserList(); }); // -------------------------------------------------------------------
发表评论
-
将博客搬至CSDN
2023-02-06 16:57 113https://www.iteye.com/blog/user ... -
Liferay Portal 应用之开发(1)
2012-02-27 14:09 17341.下载安装Eclipse Eclipse ... -
liferay Portal (1) 应用之配置
2012-02-27 13:59 1235Liferay Portal缺省只有一 ... -
ext form
2011-05-18 15:25 927//grid1定义的grid var record = gr ... -
combox
2011-04-27 10:55 15371.服务器数据作为ComboBox的数据源 实例 首先从服务 ... -
ext grid 单元格
2010-12-29 11:17 962listeners : { cellcli ... -
combox 默认值
2010-12-20 10:35 2953[ {"abbr":&quo ... -
Ext.DateField 格式
2010-12-17 10:11 1398Ext.DatePicker,该类为我们提供了一个占地面积很广 ... -
extjs的grid控件如何根据值来设置某行的背景颜色
2010-12-17 09:40 8033根据不同的值来设置grid的背景颜色 在viewConfig ... -
动态组件
2010-12-16 17:05 967Ext.onReady(function() { ... -
js 获取路径
2010-12-13 19:02 1341<br>以下为输出: <br> ... -
矫正对象 信息登记
2010-12-08 14:10 882矫正对象登记 { frame : true ... -
下拉框 控制 列是否可读
2010-11-12 08:33 1052Ext EditorGrid单元格控制小记 http://d ... -
extjs formpanel 怎么显示图片
2010-10-02 10:13 3494//可加普通的panel,html属性直接添加html代码 ... -
动态 改变 column样式
2010-09-30 16:35 1093grid.getView().getCell(rowNum , ... -
js 应用
2010-09-29 14:38 968JS里 面的new Date("xxxx/xx/xx ... -
grid 表头 鼠标事件
2010-09-24 16:04 1849grid.addListener("cellclic ... -
格式化
2010-08-26 00:32 1416//创建edgrid.js Ext.onReady(func ... -
ext (增 ,删,改 ,查,导出excel)
2010-08-26 00:03 1802下面为扩张grid的 代码 ... -
ext grid 单击事件
2010-08-25 21:11 12635EXTJS GRID 中 单击行和单元格获得行或者单元格的内容 ...
相关推荐
ExtDemo ext ext例子 Ext,绝对能跑起来
ExtJs demo ExJS+Spring+Struts2, 有点点价值的学习资料
接下来 在mysql里建立 数据库位ext的库 再去项目中 src/META-INF/persistence.xml的配置文件里吧<!-- <property name="hibernate.hbm2ddl.auto" value="update" /> -->这句话的注释去掉 好了 部署项目到tomcat上 ...
新手入门,有ext-base.js ext-all.js ext-all.css。简单的配置,仅适用于初学,没有debug
java结合ext的例子,方便大家学习,功能简单但很实用
ext5.0demo整理
自己学习ext时 常用组件的例子代码 可以到时用的时候Copy
Ext 官方的完整Demo 可供你参考!!!!!!!!1
基于ssh ext demo
ext 4.1 完整demo,入门 参照 必备
以前给某物流公司做的一个demo 用到了基本的增删查改功能 以及drag功能 由于ext.net dll太大 源码中不包含 请大家自己引用1.x版本的 Ext.Net.dll和Ext.Net.xml
ext 3做的布局DEMO 适合新手借鉴 用myeclipse写的 可以直接用浏览器打开
一个初步入门的Extdemo,对初学者有很大的帮助
简单的formt和grid的EXT DEMO,练习用
Ext3.4 无限极tree grid demo Ext3.4 无限极tree grid demo Ext3.4 无限极tree grid demo
自己做的ext增删查改demo ext3.1 ext2.2
Extjs4 此源码为学习笔记一至九的全部源码,其中包含Extjs4的资源包,由于使用的是asp作为服务端,所以建议大家使用windows主机进行测试,所有案例均在demo文件夹中。
基于以c#为脚本语言的asp和ext框架的后台管理员登录框
EXT3.0的经典Demo,官方最权威的Demo
Ext项目Demo集合,包括Ext的布局,Ext的form示例,Ext的文件上传功能,你值得拥有