﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-duansky'weblog-随笔分类-Ext</title><link>http://www.blogjava.net/duansky/category/30092.html</link><description /><language>zh-cn</language><lastBuildDate>Thu, 09 Sep 2010 21:39:32 GMT</lastBuildDate><pubDate>Thu, 09 Sep 2010 21:39:32 GMT</pubDate><ttl>60</ttl><item><title>Ext.grid.EditorGridPanel的使用、修改记录的获取及提交方法</title><link>http://www.blogjava.net/duansky/archive/2010/09/09/331555.html</link><dc:creator>duansky</dc:creator><author>duansky</author><pubDate>Thu, 09 Sep 2010 09:31:00 GMT</pubDate><guid>http://www.blogjava.net/duansky/archive/2010/09/09/331555.html</guid><wfw:comment>http://www.blogjava.net/duansky/comments/331555.html</wfw:comment><comments>http://www.blogjava.net/duansky/archive/2010/09/09/331555.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/duansky/comments/commentRss/331555.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/duansky/services/trackbacks/331555.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &lt;HTML&gt;  																																				 &lt;HEAD&gt;  																										  &lt;TITLE&gt;可编辑表格面板EditorGridPanel&lt;/TITLE&gt;  																										  &lt;meta...&nbsp;&nbsp;<a href='http://www.blogjava.net/duansky/archive/2010/09/09/331555.html'>阅读全文</a><img src ="http://www.blogjava.net/duansky/aggbug/331555.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/duansky/" target="_blank">duansky</a> 2010-09-09 17:31 <a href="http://www.blogjava.net/duansky/archive/2010/09/09/331555.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ExtJS专题-TreePanel(1)</title><link>http://www.blogjava.net/duansky/archive/2010/08/17/329103.html</link><dc:creator>duansky</dc:creator><author>duansky</author><pubDate>Tue, 17 Aug 2010 06:58:00 GMT</pubDate><guid>http://www.blogjava.net/duansky/archive/2010/08/17/329103.html</guid><wfw:comment>http://www.blogjava.net/duansky/comments/329103.html</wfw:comment><comments>http://www.blogjava.net/duansky/archive/2010/08/17/329103.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/duansky/comments/commentRss/329103.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/duansky/services/trackbacks/329103.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &nbsp;&nbsp;<a href='http://www.blogjava.net/duansky/archive/2010/08/17/329103.html'>阅读全文</a><img src ="http://www.blogjava.net/duansky/aggbug/329103.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/duansky/" target="_blank">duansky</a> 2010-08-17 14:58 <a href="http://www.blogjava.net/duansky/archive/2010/08/17/329103.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>关于extjs开发的方式</title><link>http://www.blogjava.net/duansky/archive/2009/10/16/298646.html</link><dc:creator>duansky</dc:creator><author>duansky</author><pubDate>Fri, 16 Oct 2009 14:36:00 GMT</pubDate><guid>http://www.blogjava.net/duansky/archive/2009/10/16/298646.html</guid><wfw:comment>http://www.blogjava.net/duansky/comments/298646.html</wfw:comment><comments>http://www.blogjava.net/duansky/archive/2009/10/16/298646.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/duansky/comments/commentRss/298646.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/duansky/services/trackbacks/298646.html</trackback:ping><description><![CDATA[我觉得,开发EXTJS,首先要建立的就是组件化编程,你把一个form作为一个组件,也可以将半个页面都作为一个组件.当组件化编程之后你就要考虑分类别,分模块开发了, <br /><br />我认为,一个组件一个JS文件,多个组件拼接成一个模块,这些组件都放在一个文件夹下,命名方法其实很简单,类似java如: <br />在App文件夹下的Scene文件夹内 <br />App.Scene.ScreenManager.js <br />    Ext.namespace("App.Scene.ScreenManager.XX","App.Scene.ScreenManager.YY"); <br /><br />App.Scene.ScreenControl.js <br />    Ext.namespace("App.Scene. ScreenControl.XX","App.Scene. ScreenControl.YY"); <br /><br />App.Scene.Main.js <br />    Ext.namespace("App.Scene. Main.XX","App.Scene.Main.YY"); <br /><br />在App文件夹下的Business文件夹内 <br />App.Business.CheckUser.js <br />    //同上 <br />App.Business.Logout.js <br />    //同上 <br /><br />并且,切记,要把Extjs当做java来写,因此,你的程序只能有一个入口即只能允许整个程序中只出现一个 <br />Ext.onReady(function(){ <br /><br />}); <br />很多人不信Extjs可以这样写,说只能应用在小型的项目中,但是我可以告诉你,这样的写法完全适用与大项目,而且是项目越大越能展现出他的好处 <br /><br />我经历过刻骨铭心的失败总结出以下几点经验: <br />1.绝不使用全局变量(如有必要,可以用静态方法来做) <br />2.不能设置组件的(包括该组件下的小组件的)ID这个属性,(此组件的派生类你可以随意). <br />3.稀奇古怪的代码少写,因为你不能保证你的EXTJS版本永远停留在当前版本上(如果公司有钱买授权的话) <br />4.能在后台完成的业务逻辑坚决不在前台做,即使在前台做看起来比较简单(如果前台坐起来非常简单就算了,例如验证) <br />5.统一管理你的JSON生成. <br />6.规范你的代码 <br /><br /><br />我下面有一段代码是我的风格,当然可能并不适合你: <br /><div class="dp-highlighter"><div class="bar"><div class="tools">Js代码 <a title="复制代码" onclick="dp.sh.Toolbar.CopyToClipboard(this);return false;" href="http://www.javaeye.com/topic/486697#"><img alt="复制代码" src="http://www.javaeye.com/images/icon_copy.gif" /></a></div></div><ol class="dp-c"><li><span><span>Ext.ns(</span><span class="string"><font color="#0000ff">"App.Users.CURD"</font></span><span>);   </span></span></li><li><span></span><span class="comment"><font color="#008200">/** </font></span> </li><li><span><span class="comment"><font color="#008200"> * 必要的注释一个不能少,Javascript代码维护起来没有java好维护.... </font></span> </span></li><li><span><span class="comment"><font color="#008200"> * </font></span> </span></li><li><span><span class="comment"><font color="#008200"> */</font></span><span>  </span></span></li><li><span>App.Users.CURD = Ext.extend(Ext.Panel,{   </span></li><li><span>    </span><span class="comment"><font color="#008200">//属性代码全部写在这里 </font></span><span>  </span></li><li><span>    title:</span><span class="string"><font color="#0000ff">"CURD"</font></span><span>,   </span></li><li><span>    </span><span class="comment"><font color="#008200">//初始化组件(如果你的组件需要改变样式或者需要动它的dom,你可以重写父类的onRender,并把部分视图代码放在onRender函数中) </font></span><span>  </span></li><li><span>    initComponent:</span><span class="keyword"><strong><font color="#7f0055">function</font></strong></span><span>(){   </span></li><li><span>        App.Users.CURD.superclass.initComponent.call(</span><span class="keyword"><strong><font color="#7f0055">this</font></strong></span><span>,arguments);   </span></li><li><span>        </span><span class="comment"><font color="#008200">//先定义自定义事件(如果必要的话) </font></span><span>  </span></li><li><span>           </span></li><li><span>        </span><span class="comment"><font color="#008200">//接着视图代码全部写在这里 </font></span><span>  </span></li><li><span>  </span></li><li><span>    },   </span></li><li><span>    </span><span class="comment"><font color="#008200">//方法函数全部写在这里 </font></span><span>  </span></li><li><span>    </span><span class="comment"><font color="#008200">//先将与后台数据交互的函数写出来 </font></span><span>  </span></li><li><span>    addUser : </span><span class="keyword"><strong><font color="#7f0055">function</font></strong></span><span>() {   </span></li><li><span>        </span><span class="comment"><font color="#008200">//对应后台同名的Action方法函数 </font></span><span>  </span></li><li><span>    },   </span></li><li><span>    delUser : </span><span class="keyword"><strong><font color="#7f0055">function</font></strong></span><span>() {   </span></li><li><span>        </span><span class="comment"><font color="#008200">//对应后台同名的Action方法函数 </font></span><span>  </span></li><li><span>    },   </span></li><li><span>    updateUser : </span><span class="keyword"><strong><font color="#7f0055">function</font></strong></span><span>() {   </span></li><li><span>        </span><span class="comment"><font color="#008200">//对应后台同名的Action方法函数 </font></span><span>  </span></li><li><span>    },   </span></li><li><span>    </span><span class="comment"><font color="#008200">//供自己内部使用的函数跟在后面 </font></span><span>  </span></li><li><span>    formClear : </span><span class="keyword"><strong><font color="#7f0055">function</font></strong></span><span>() {   </span></li><li><span>  </span></li><li><span>    },   </span></li><li><span>    </span><span class="comment"><font color="#008200">//提供给外部调用的函数紧跟数据操作 </font></span><span>  </span></li><li><span>    getSelectUsers : </span><span class="keyword"><strong><font color="#7f0055">function</font></strong></span><span>(){   </span></li><li><span>        </span><span class="keyword"><strong><font color="#7f0055">return</font></strong></span><span> ......   </span></li><li><span>    }   </span></li><li><span>    setXXXX : </span><span class="keyword"><strong><font color="#7f0055">function</font></strong></span><span>() {   </span></li><li><span>    },   </span></li><li><span>    </span><span class="comment"><font color="#008200">//最后就是事件处理函数,因为函数比较多,事件处理往往伴随着页面逻辑,放在后面比较好找....混在中间不太好找 </font></span><span>  </span></li><li><span>    onSubmit : </span><span class="keyword"><strong><font color="#7f0055">function</font></strong></span><span>() {   </span></li><li><span>  </span></li><li><span>    },   </span></li><li><span>    onDelet : </span><span class="keyword"><strong><font color="#7f0055">function</font></strong></span><span>() {   </span></li><li><span>  </span></li><li><span>    }   </span></li><li><span>});   </span></li><li><span>  </span></li><li><span></span><span class="comment"><font color="#008200">//*因为是基于UI的组件,因此一般都可以独立测试,测试通过后注释掉即可(注意我的注释写法) </font></span><span>  </span></li><li><span>Ext.onReady(</span><span class="keyword"><strong><font color="#7f0055">function</font></strong></span><span>(){   </span></li><li><span>    </span><span class="comment"><font color="#008200">//......... </font></span><span>  </span></li><li><span>});   </span></li><li><span></span><span class="comment"><font color="#008200">//*/</font></span><span>  </span></li></ol></div><pre class="js" style="DISPLAY: none" name="code">Ext.ns("App.Users.CURD");
/**
 * 必要的注释一个不能少,Javascript代码维护起来没有java好维护....
 *
 */
App.Users.CURD = Ext.extend(Ext.Panel,{
    //属性代码全部写在这里
    title:"CURD",
    //初始化组件(如果你的组件需要改变样式或者需要动它的dom,你可以重写父类的onRender,并把部分视图代码放在onRender函数中)
    initComponent:function(){
        App.Users.CURD.superclass.initComponent.call(this,arguments);
        //先定义自定义事件(如果必要的话)
        
        //接着视图代码全部写在这里

    },
    //方法函数全部写在这里
    //先将与后台数据交互的函数写出来
    addUser : function() {
        //对应后台同名的Action方法函数
    },
    delUser : function() {
        //对应后台同名的Action方法函数
    },
    updateUser : function() {
        //对应后台同名的Action方法函数
    },
    //供自己内部使用的函数跟在后面
    formClear : function() {

    },
    //提供给外部调用的函数紧跟数据操作
    getSelectUsers : function(){
        return ......
    }
    setXXXX : function() {
    },
    //最后就是事件处理函数,因为函数比较多,事件处理往往伴随着页面逻辑,放在后面比较好找....混在中间不太好找
    onSubmit : function() {

    },
    onDelet : function() {

    }
});

//*因为是基于UI的组件,因此一般都可以独立测试,测试通过后注释掉即可(注意我的注释写法)
Ext.onReady(function(){
    //.........
});
//*/
</pre><br /><br /><br />最后一句....无论是ASP.NET组件(Coolite)还是什么可视化组件,前期学习都不要使用. <br /><br />转自: <a href="http://www.javaeye.com/topic/486697">http://www.javaeye.com/topic/486697</a><img src ="http://www.blogjava.net/duansky/aggbug/298646.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/duansky/" target="_blank">duansky</a> 2009-10-16 22:36 <a href="http://www.blogjava.net/duansky/archive/2009/10/16/298646.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Ext的组件结构分析,附Ext组件结构图</title><link>http://www.blogjava.net/duansky/archive/2008/03/17/186762.html</link><dc:creator>duansky</dc:creator><author>duansky</author><pubDate>Mon, 17 Mar 2008 07:11:00 GMT</pubDate><guid>http://www.blogjava.net/duansky/archive/2008/03/17/186762.html</guid><wfw:comment>http://www.blogjava.net/duansky/comments/186762.html</wfw:comment><comments>http://www.blogjava.net/duansky/archive/2008/03/17/186762.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/duansky/comments/commentRss/186762.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/duansky/services/trackbacks/186762.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &nbsp;&nbsp;<a href='http://www.blogjava.net/duansky/archive/2008/03/17/186762.html'>阅读全文</a><img src ="http://www.blogjava.net/duansky/aggbug/186762.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/duansky/" target="_blank">duansky</a> 2008-03-17 15:11 <a href="http://www.blogjava.net/duansky/archive/2008/03/17/186762.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>使用Ext2.0制作漂亮的登陆面板 </title><link>http://www.blogjava.net/duansky/archive/2008/03/14/186363.html</link><dc:creator>duansky</dc:creator><author>duansky</author><pubDate>Fri, 14 Mar 2008 10:07:00 GMT</pubDate><guid>http://www.blogjava.net/duansky/archive/2008/03/14/186363.html</guid><wfw:comment>http://www.blogjava.net/duansky/comments/186363.html</wfw:comment><comments>http://www.blogjava.net/duansky/archive/2008/03/14/186363.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/duansky/comments/commentRss/186363.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/duansky/services/trackbacks/186363.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &nbsp;&nbsp;<a href='http://www.blogjava.net/duansky/archive/2008/03/14/186363.html'>阅读全文</a><img src ="http://www.blogjava.net/duansky/aggbug/186363.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/duansky/" target="_blank">duansky</a> 2008-03-14 18:07 <a href="http://www.blogjava.net/duansky/archive/2008/03/14/186363.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>