﻿<?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-Reg-随笔分类-Extjs</title><link>http://www.blogjava.net/Reg/category/45433.html</link><description /><language>zh-cn</language><lastBuildDate>Tue, 31 Aug 2010 12:14:10 GMT</lastBuildDate><pubDate>Tue, 31 Aug 2010 12:14:10 GMT</pubDate><ttl>60</ttl><item><title>Ext动态加载JS文件</title><link>http://www.blogjava.net/Reg/archive/2010/08/31/330372.html</link><dc:creator>艾波</dc:creator><author>艾波</author><pubDate>Tue, 31 Aug 2010 01:59:00 GMT</pubDate><guid>http://www.blogjava.net/Reg/archive/2010/08/31/330372.html</guid><wfw:comment>http://www.blogjava.net/Reg/comments/330372.html</wfw:comment><comments>http://www.blogjava.net/Reg/archive/2010/08/31/330372.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Reg/comments/commentRss/330372.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Reg/services/trackbacks/330372.html</trackback:ping><description><![CDATA[<p>&nbsp;</p>
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><span style="color: #000000">下面是2种动态加载js的方法，这2种方法都很好用，速度上感觉不出差别，当加载了一次之后，第2次以<br />
<br />
后都不会重复加载，这样的话就不会每次点击都向服务器下载js！<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;这2种方法中，我个人觉得第2种是比较好用，它可以在callback里直接使用刚加载的js。<br />
<br />
</span><span style="color: #008000">//</span><span style="color: #008000">第1种动态加载js&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000"><br />
</span><span style="color: #0000ff">function</span><span style="color: #000000">&nbsp;GetHttpRequest()&nbsp;<br />
{&nbsp;<br />
</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(&nbsp;window.XMLHttpRequest&nbsp;)<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;XMLHttpRequest()&nbsp;;&nbsp;<br />
</span><span style="color: #0000ff">else</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(&nbsp;window.ActiveXObject&nbsp;)&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;IE&nbsp;</span><span style="color: #008000"><br />
</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;ActiveXObject(</span><span style="color: #000000">"</span><span style="color: #000000">MsXml2.XmlHttp</span><span style="color: #000000">"</span><span style="color: #000000">)&nbsp;;&nbsp;<br />
}<br />
<br />
</span><span style="color: #0000ff">function</span><span style="color: #000000">&nbsp;loadJS(jsName)&nbsp;{<br />
</span><span style="color: #0000ff">var</span><span style="color: #000000">&nbsp;oXmlHttp&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;GetHttpRequest()&nbsp;;<br />
oXmlHttp.onreadystatechange&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">function</span><span style="color: #000000">()<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(&nbsp;oXmlHttp.readyState&nbsp;</span><span style="color: #000000">==</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">4</span><span style="color: #000000">&nbsp;)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(&nbsp;oXmlHttp.status&nbsp;</span><span style="color: #000000">==</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">200</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">||</span><span style="color: #000000">&nbsp;oXmlHttp.status&nbsp;</span><span style="color: #000000">==</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">304</span><span style="color: #000000">&nbsp;)<br />
&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;txt&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;oXmlHttp.responseText;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">var</span><span style="color: #000000">&nbsp;scriptTag&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;document.getElementById(id);&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">var</span><span style="color: #000000">&nbsp;oHead&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;document.getElementsByTagName('HEAD').item(</span><span style="color: #000000">0</span><span style="color: #000000">);&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">var</span><span style="color: #000000">&nbsp;oScript</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;document.createElement(</span><span style="color: #000000">"</span><span style="color: #000000">script</span><span style="color: #000000">"</span><span style="color: #000000">);&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(scriptTag)&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;oHead.removeChild(scriptTag&nbsp;);&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;oScript.id&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">loadJS_id</span><span style="color: #000000">"</span><span style="color: #000000">;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;oScript.type&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">text/javascript</span><span style="color: #000000">"</span><span style="color: #000000">;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;oScript.src</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;jsName</span><span style="color: #000000">+</span><span style="color: #000000">"</span><span style="color: #000000">.js</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;oHead.appendChild(oScript);&nbsp;<br />
&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">else</span><span style="color: #000000"><br />
&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alert('操作失败:'&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;oXmlHttp.statusText&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;'('&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;oXmlHttp.status&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;')'&nbsp;)&nbsp;;<br />
&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
}<br />
url&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;''&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;jsName&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;'.js';<br />
oXmlHttp.open('GET',&nbsp;url,&nbsp;</span><span style="color: #0000ff">true</span><span style="color: #000000">);<br />
oXmlHttp.send(</span><span style="color: #0000ff">null</span><span style="color: #000000">);<br />
}<br />
<br />
</span><span style="color: #008000">//</span><span style="color: #008000">使用：</span><span style="color: #008000"><br />
</span><span style="color: #000000"><br />
</span><span style="color: #0000ff">if</span><span style="color: #000000">(</span><span style="color: #0000ff">true</span><span style="color: #000000">)<br />
{&nbsp;<br />
&nbsp;&nbsp;&nbsp;tbar.push({&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;text&nbsp;:&nbsp;'新增',&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tooltip&nbsp;:&nbsp;'新增一条记录',&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;iconCls&nbsp;:&nbsp;_addIco,&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;handler&nbsp;:&nbsp;</span><span style="color: #0000ff">function</span><span style="color: #000000">()&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">var</span><span style="color: #000000">&nbsp;el&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;Ext.get(</span><span style="color: #000000">"</span><span style="color: #000000">loadJS_id</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">(</span><span style="color: #000000">!</span><span style="color: #000000">el)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;loadJS(</span><span style="color: #000000">"</span><span style="color: #000000">addTest</span><span style="color: #000000">"</span><span style="color: #000000">);&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">addTest,js文件名</span><span style="color: #008000"><br />
</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;add();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br />
&nbsp;&nbsp;&nbsp;},&nbsp;'</span><span style="color: #000000">-</span><span style="color: #000000">');&nbsp;<br />
}<br />
<br />
&nbsp;<br />
<br />
</span><span style="color: #008000">//</span><span style="color: #008000">第2种动态加载js&nbsp;&nbsp;&nbsp;</span><span style="color: #008000"><br />
</span><span style="color: #000000"><br />
ScriptLoader&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">function</span><span style="color: #000000">()&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.timeout&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">30</span><span style="color: #000000">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.scripts&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;[];<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.disableCaching&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">false</span><span style="color: #000000">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.loadMask&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">null</span><span style="color: #000000">;<br />
};<br />
<br />
ScriptLoader.prototype&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;showMask:&nbsp;</span><span style="color: #0000ff">function</span><span style="color: #000000">()&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(</span><span style="color: #000000">!</span><span style="color: #0000ff">this</span><span style="color: #000000">.loadMask)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.loadMask&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;Ext.LoadMask(Ext.getBody());<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.loadMask.show();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;},<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;hideMask:&nbsp;</span><span style="color: #0000ff">function</span><span style="color: #000000">()&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(</span><span style="color: #0000ff">this</span><span style="color: #000000">.loadMask)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.loadMask.hide();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.loadMask&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">null</span><span style="color: #000000">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;},<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;processSuccess:&nbsp;</span><span style="color: #0000ff">function</span><span style="color: #000000">(response)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.scripts[response.argument.url]&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">true</span><span style="color: #000000">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;window.execScript&nbsp;</span><span style="color: #000000">?</span><span style="color: #000000">&nbsp;window.execScript(response.responseText)&nbsp;:&nbsp;window.eval(response.responseText);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(response.argument.options.scripts.length&nbsp;</span><span style="color: #000000">==</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">0</span><span style="color: #000000">)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.hideMask();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(</span><span style="color: #0000ff">typeof</span><span style="color: #000000">&nbsp;response.argument.callback&nbsp;</span><span style="color: #000000">==</span><span style="color: #000000">&nbsp;'</span><span style="color: #0000ff">function</span><span style="color: #000000">')&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;response.argument.callback.call(response.argument.scope);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;},<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;processFailure:&nbsp;</span><span style="color: #0000ff">function</span><span style="color: #000000">(response)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.hideMask();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ext.MessageBox.show({title:&nbsp;'Application&nbsp;Error',&nbsp;msg:&nbsp;'Script&nbsp;library&nbsp;could&nbsp;not&nbsp;be&nbsp;loaded.',&nbsp;closable:&nbsp;</span><span style="color: #0000ff">false</span><span style="color: #000000">,&nbsp;icon:&nbsp;Ext.MessageBox.ERROR,&nbsp;minWidth:&nbsp;</span><span style="color: #000000">200</span><span style="color: #000000">});<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;setTimeout(</span><span style="color: #0000ff">function</span><span style="color: #000000">()&nbsp;{&nbsp;Ext.MessageBox.hide();&nbsp;},&nbsp;</span><span style="color: #000000">3000</span><span style="color: #000000">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;},<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;load:&nbsp;</span><span style="color: #0000ff">function</span><span style="color: #000000">(url,&nbsp;callback)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">var</span><span style="color: #000000">&nbsp;cfg,&nbsp;callerScope;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(</span><span style="color: #0000ff">typeof</span><span style="color: #000000">&nbsp;url&nbsp;</span><span style="color: #000000">==</span><span style="color: #000000">&nbsp;'object')&nbsp;{&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;must&nbsp;be&nbsp;config&nbsp;object</span><span style="color: #008000"><br />
</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cfg&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;url;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;url&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;cfg.url;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;callback&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;callback&nbsp;</span><span style="color: #000000">||</span><span style="color: #000000">&nbsp;cfg.callback;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;callerScope&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;cfg.scope;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(</span><span style="color: #0000ff">typeof</span><span style="color: #000000">&nbsp;cfg.timeout&nbsp;</span><span style="color: #000000">!=</span><span style="color: #000000">&nbsp;'undefined')&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.timeout&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;cfg.timeout;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(</span><span style="color: #0000ff">typeof</span><span style="color: #000000">&nbsp;cfg.disableCaching&nbsp;</span><span style="color: #000000">!=</span><span style="color: #000000">&nbsp;'undefined')&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.disableCaching&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;cfg.disableCaching;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(</span><span style="color: #0000ff">this</span><span style="color: #000000">.scripts[url])&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(</span><span style="color: #0000ff">typeof</span><span style="color: #000000">&nbsp;callback&nbsp;</span><span style="color: #000000">==</span><span style="color: #000000">&nbsp;'</span><span style="color: #0000ff">function</span><span style="color: #000000">')&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;callback.call(callerScope&nbsp;</span><span style="color: #000000">||</span><span style="color: #000000">&nbsp;window);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">null</span><span style="color: #000000">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.showMask();<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ext.Ajax.request({<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;url:&nbsp;url,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;success:&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.processSuccess,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;failure:&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.processFailure,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;scope:&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;timeout:&nbsp;(</span><span style="color: #0000ff">this</span><span style="color: #000000">.timeout</span><span style="color: #000000">*</span><span style="color: #000000">1000</span><span style="color: #000000">),<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;disableCaching:&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.disableCaching,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;argument:&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'url':&nbsp;url,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'scope':&nbsp;callerScope&nbsp;</span><span style="color: #000000">||</span><span style="color: #000000">&nbsp;window,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'callback':&nbsp;callback,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'options':&nbsp;cfg<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;});<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
};<br />
<br />
ScriptLoaderMgr&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">function</span><span style="color: #000000">()&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.loader&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;ScriptLoader();<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.load&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">function</span><span style="color: #000000">(o)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(</span><span style="color: #000000">!</span><span style="color: #000000">Ext.isArray(o.scripts))&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;o.scripts&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;[o.scripts];<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;o.url&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;o.scripts.shift();<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(o.scripts.length&nbsp;</span><span style="color: #000000">==</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">0</span><span style="color: #000000">)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.loader.load(o);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;</span><span style="color: #0000ff">else</span><span style="color: #000000">&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;o.scope&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.loader.load(o,&nbsp;</span><span style="color: #0000ff">function</span><span style="color: #000000">()&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.load(o);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;});<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;};<br />
};<br />
<br />
ScriptMgr&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;ScriptLoaderMgr();<br />
<br />
</span><span style="color: #008000">//</span><span style="color: #008000">使用：</span><span style="color: #008000"><br />
</span><span style="color: #000000">{<br />
id&nbsp;:&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">d_m_sub3</span><span style="color: #000000">"</span><span style="color: #000000">,<br />
xtype&nbsp;:&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">tbbutton</span><span style="color: #000000">"</span><span style="color: #000000">,<br />
text&nbsp;:&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">完成任务</span><span style="color: #000000">"</span><span style="color: #000000">,<br />
iconCls&nbsp;:&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">sub2</span><span style="color: #000000">"</span><span style="color: #000000">,<br />
handler&nbsp;:&nbsp;</span><span style="color: #0000ff">function</span><span style="color: #000000">(){<br />
ScriptMgr.load({&nbsp;<br />
scripts:&nbsp;['</span><span style="color: #000000">/</span><span style="color: #000000">baoa</span><span style="color: #000000">/</span><span style="color: #000000">oaTask</span><span style="color: #000000">/</span><span style="color: #000000">oaTask_task7</span><span style="color: #000000">/</span><span style="color: #000000">oaTask_task7_browse.js','</span><span style="color: #000000">/</span><span style="color: #000000">baoa</span><span style="color: #000000">/</span><span style="color: #000000">oaTask</span><span style="color: #000000">/</span><span style="color: #000000">oaTask_task8</span><span style="color: #000000">/</span><span style="color: #000000">oaTask_task8_browse.js'],&nbsp;<br />
callback:&nbsp;</span><span style="color: #0000ff">function</span><span style="color: #000000">()&nbsp;{&nbsp;<br />
</span><span style="color: #0000ff">var</span><span style="color: #000000">&nbsp;n&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;Ext.getCmp(</span><span style="color: #000000">"</span><span style="color: #000000">rightPanelId</span><span style="color: #000000">"</span><span style="color: #000000">).getComponent(</span><span style="color: #000000">"</span><span style="color: #000000">d_m_sub3</span><span style="color: #000000">"</span><span style="color: #000000">);&nbsp;<br />
</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(</span><span style="color: #000000">!</span><span style="color: #000000">n)&nbsp;<br />
{&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;判断是否已经打开该面板&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000"><br />
</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;n&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;Ext.getCmp(</span><span style="color: #000000">"</span><span style="color: #000000">rightPanelId</span><span style="color: #000000">"</span><span style="color: #000000">).add<br />
&nbsp;&nbsp;&nbsp;({&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;id:</span><span style="color: #000000">"</span><span style="color: #000000">d_m_sub3</span><span style="color: #000000">"</span><span style="color: #000000">,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;title:'完成任务',<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;closable&nbsp;:&nbsp;</span><span style="color: #0000ff">true</span><span style="color: #000000">,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;items&nbsp;:[&nbsp;{autoScroll&nbsp;:&nbsp;</span><span style="color: #0000ff">true</span><span style="color: #000000">,border:</span><span style="color: #0000ff">false</span><span style="color: #000000">,layout:'form',items:[Lbo_oaTask_task7_browse(param).prop.grid,Lbo_oaTask_task8_browse(param).prop.grid]}&nbsp;]<br />
&nbsp;&nbsp;&nbsp;&nbsp;});<br />
&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;Ext.getCmp(</span><span style="color: #000000">"</span><span style="color: #000000">rightPanelId</span><span style="color: #000000">"</span><span style="color: #000000">).setActiveTab(n);&nbsp;<br />
&nbsp;&nbsp;&nbsp;Ext.getCmp(</span><span style="color: #000000">"</span><span style="color: #000000">rightPanelId</span><span style="color: #000000">"</span><span style="color: #000000">).doLayout();&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;});&nbsp;<br />
}<br />
}<br />
<br />
ScriptMgr.load<br />
({&nbsp;<br />
scripts:&nbsp;['</span><span style="color: #000000">/</span><span style="color: #000000">baoa</span><span style="color: #000000">/</span><span style="color: #000000">oaTask</span><span style="color: #000000">/</span><span style="color: #000000">oaTask_task</span><span style="color: #000000">/</span><span style="color: #000000">oaTask_task_add.js'],&nbsp;<br />
callback:&nbsp;</span><span style="color: #0000ff">function</span><span style="color: #000000">()&nbsp;{&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;showAddForm();&nbsp;<br />
}<br />
});<br />
</span></div>
<img src ="http://www.blogjava.net/Reg/aggbug/330372.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Reg/" target="_blank">艾波</a> 2010-08-31 09:59 <a href="http://www.blogjava.net/Reg/archive/2010/08/31/330372.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[转]Extjs 扩展Htmleditor，支持 图片上传 文件上传 插入flash 插入多媒体 插入层 插入横线等功能</title><link>http://www.blogjava.net/Reg/archive/2010/08/30/330211.html</link><dc:creator>艾波</dc:creator><author>艾波</author><pubDate>Sun, 29 Aug 2010 16:01:00 GMT</pubDate><guid>http://www.blogjava.net/Reg/archive/2010/08/30/330211.html</guid><wfw:comment>http://www.blogjava.net/Reg/comments/330211.html</wfw:comment><comments>http://www.blogjava.net/Reg/archive/2010/08/30/330211.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Reg/comments/commentRss/330211.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Reg/services/trackbacks/330211.html</trackback:ping><description><![CDATA[<p>CJ_StarHtmlEditor.js的代码如下，使用方法，直接复制，保存成CJ_StarHtmlEditor.js就可以用了。</p>
<p>/**<br />
* 作者：陈杰<br />
* QQ : 710782046<br />
* Email:ovenjackchain@gmail.com<br />
* Blog :http://hi.baidu.com/jackvoilet<br />
*/ <br />
var HTMLEditor = Ext.extend(Ext.form.HtmlEditor, {<br />
<font color="#134f5c">addImage : function() {<br />
&nbsp;&nbsp; var editor = this;<br />
&nbsp;&nbsp; var imgform = new Ext.FormPanel({<br />
&nbsp;&nbsp;&nbsp; region : 'center',<br />
&nbsp;&nbsp;&nbsp; labelWidth : 55,<br />
&nbsp;&nbsp;&nbsp; frame : true,<br />
&nbsp;&nbsp;&nbsp; bodyStyle : 'padding:5px 5px 0',<br />
&nbsp;&nbsp;&nbsp; autoScroll : true,<br />
&nbsp;&nbsp;&nbsp; border : false,<br />
&nbsp;&nbsp;&nbsp; fileUpload : true,<br />
&nbsp;&nbsp;&nbsp; items : [{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xtype : 'textfield',<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fieldLabel : '选择文件',<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; name : 'userfile',<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; id : 'userfile',<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; inputType : 'file',<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; allowBlank : false,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; blankText : '文件不能为空',<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; height : 25,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; anchor : '98%'<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }],<br />
&nbsp;&nbsp;&nbsp; buttons : [{<br />
&nbsp;&nbsp;&nbsp;&nbsp; text : '上传',<br />
&nbsp;&nbsp;&nbsp;&nbsp; type : 'submit',<br />
&nbsp;&nbsp;&nbsp;&nbsp; handler : function() {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var furl="";<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; furl=imgform.form.findField('userfile').getValue();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var type=furl.substring(furl.length-3).toLowerCase();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var filename=furl.substring(furl.lastIndexOf("</font><a href="file://%22)+1/"><font color="#134f5c">\\")+1</font></a><font color="#134f5c">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (furl==""||furl==null) {return;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(type!='jpg'&amp;&amp;type!='bmp'&amp;&amp;type!='gif'&amp;&amp;type!='png'){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; alert('仅支持jpg、bmp、gif、png格式的图片');<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; imgform.form.submit({<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; url : '/newsinfo.mvc/AddFiles_newsinfo',<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; waitMsg : '正在上传......',<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; waitTitle : '请等待',<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; method : 'POST',<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; success : function() {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var element = document.createElement("img");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; element.src = "../UploadFile/"+filename;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; element.style.width="300px";<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; element.style.height="200px";<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (Ext.isIE) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; editor.insertAtCursor(element.outerHTML);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } else {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var selection = editor.win.getSelection();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (!selection.isCollapsed) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; selection.deleteFromDocument();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; selection.getRangeAt(0).insertNode(element);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; win.close();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; },<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; failure : function(form, action) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; form.reset();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (action.failureType == Ext.form.Action.SERVER_INVALID)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Ext.MessageBox.alert('警告',<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '上传失败，仅支持jpg、bmp、gif、png格式的图片');<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; });<br />
&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; }, {<br />
&nbsp;&nbsp;&nbsp;&nbsp; text : '关闭',<br />
&nbsp;&nbsp;&nbsp;&nbsp; type : 'submit',<br />
&nbsp;&nbsp;&nbsp;&nbsp; handler : function() {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; win.close(this);<br />
&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; }]<br />
&nbsp;&nbsp; })</font></p>
<p><font color="#134f5c">&nbsp;&nbsp; var win = new Ext.Window({<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; title : "上传图片",<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; id : 'picwin',<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; width : 400,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; height : 120,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; modal : true,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; border : false,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; iconCls:'icon-uploadpic',<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; layout : "fit",<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; items : imgform</font></p>
<p><font color="#134f5c">&nbsp;&nbsp;&nbsp;&nbsp; });<br />
&nbsp;&nbsp; win.show();<br />
&nbsp;&nbsp;<br />
},//上传图片的扩展<br />
</font><font color="#ff0000">addFile : function() {<br />
&nbsp;&nbsp; var editor = this;<br />
&nbsp;&nbsp; var fileform = new Ext.FormPanel({<br />
&nbsp;&nbsp;&nbsp; region : 'center',<br />
&nbsp;&nbsp;&nbsp; labelWidth : 55,<br />
&nbsp;&nbsp;&nbsp; frame : true,<br />
&nbsp;&nbsp;&nbsp; bodyStyle : 'padding:5px 5px 0',<br />
&nbsp;&nbsp;&nbsp; autoScroll : true,<br />
&nbsp;&nbsp;&nbsp; border : false,<br />
&nbsp;&nbsp;&nbsp; fileUpload : true,<br />
&nbsp;&nbsp;&nbsp; items : [{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xtype : 'textfield',<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fieldLabel : '选择文件',<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; name : 'userfile_F',<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; id : 'userfile_F',<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; inputType : 'file',<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; allowBlank : false,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; blankText : '文件不能为空',<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; height : 25,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; anchor : '98%'<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }],<br />
&nbsp;&nbsp;&nbsp; buttons : [{<br />
&nbsp;&nbsp;&nbsp;&nbsp; text : '上传',<br />
&nbsp;&nbsp;&nbsp;&nbsp; type : 'submit',<br />
&nbsp;&nbsp;&nbsp;&nbsp; handler : function() {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var furl="";//文件物理地址<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var fname="";//文件名称<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; furl=fileform.form.findField('userfile_F').getValue();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var type=furl.substring(furl.length-3).toLowerCase();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (furl==""||furl==null) {return;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(type!='doc'&amp;&amp;type!='xls'){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; alert('仅支持上传doc、xls格式的文件!');<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fname=furl.substring(furl.lastIndexOf("</font><a href="file://%22)+1/"><font color="#ff0000">\\")+1</font></a><font color="#ff0000">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fileform.form.submit({<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; url : '/newsinfo.mvc/AddFiles_newsinfo',<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; waitMsg : '正在上传......',<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; waitTitle : '请等待',<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; method : 'POST',<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; success : function() {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var element = document.createElement("a");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; element.href = "../UploadFile/"+fname;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; element.target = '_blank';<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; element.innerHTML = fname;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (Ext.isIE) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; editor.insertAtCursor(element.outerHTML);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } else {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var selection = editor.win.getSelection();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (!selection.isCollapsed) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; selection.deleteFromDocument();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; selection.getRangeAt(0).insertNode(element);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; winFile.close();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; },<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; failure : function() {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; form.reset();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (action.failureType == Ext.form.Action.SERVER_INVALID)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Ext.MessageBox.alert('警告',<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '上传失败，仅支持上传doc、xls格式的文件!');<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; });<br />
&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; }, {<br />
&nbsp;&nbsp;&nbsp;&nbsp; text : '关闭',<br />
&nbsp;&nbsp;&nbsp;&nbsp; type : 'submit',<br />
&nbsp;&nbsp;&nbsp;&nbsp; handler : function() {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; winFile.close(this);<br />
&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; }]<br />
&nbsp;&nbsp; })</font></p>
<p><font color="#ff0000">&nbsp;&nbsp; var winFile = new Ext.Window({<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; title : "上传附件",<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; id : 'picwin',<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; width : 400,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; height : 120,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; modal : true,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; border : false,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; layout : "fit",<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; iconCls : 'icon-uploadfile',<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; items : fileform</font></p>
<p><font color="#ff0000">&nbsp;&nbsp;&nbsp;&nbsp; });<br />
&nbsp;&nbsp; winFile.show();<br />
&nbsp;&nbsp;<br />
},//上传附件的扩展<br />
</font>addflash : function() {<br />
&nbsp;&nbsp; var editor = this;<br />
&nbsp;&nbsp; var flashform = new Ext.FormPanel({<br />
&nbsp;&nbsp;&nbsp; region : 'center',<br />
&nbsp;&nbsp;&nbsp; labelWidth : 55,<br />
&nbsp;&nbsp;&nbsp; frame : true,<br />
&nbsp;&nbsp;&nbsp; bodyStyle : 'padding:5px 5px 0',<br />
&nbsp;&nbsp;&nbsp; autoScroll : true,<br />
&nbsp;&nbsp;&nbsp; border : false,<br />
&nbsp;&nbsp;&nbsp; items : [{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xtype : 'textfield',<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fieldLabel : 'flash地址',<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; name : 'userflash',<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; id : 'userflash',<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; allowBlank : false,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; blankText : 'http://',<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; emptyText : 'http://',<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; height : 25,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; anchor : '98%'<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }],<br />
&nbsp;&nbsp;&nbsp; buttons : [{<br />
&nbsp;&nbsp;&nbsp;&nbsp; text : '添加',<br />
&nbsp;&nbsp;&nbsp;&nbsp; type : 'submit',<br />
&nbsp;&nbsp;&nbsp;&nbsp; handler : function() {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var furl="";//文件物理地址<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; furl=flashform.form.findField('userflash').getValue();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var type=furl.substring(furl.length-3).toLowerCase();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (furl==""||furl==null) {return;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(type!='swf'&amp;&amp;type!='flv'){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; alert('非法格式，请检查！');<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var element = document.createElement("embed");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; element.src = furl;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; element.type="application/x-shockwave-flash";<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; element.quality="high";<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; element.style.width="300px";<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; element.style.height="200px";<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(Ext.isIE) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; editor.insertAtCursor(element.outerHTML);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } else {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var selection = editor.win.getSelection();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (!selection.isCollapsed) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; selection.deleteFromDocument();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; selection.getRangeAt(0).insertNode(element);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; winflash.close();<br />
&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; }, {<br />
&nbsp;&nbsp;&nbsp;&nbsp; text : '关闭',<br />
&nbsp;&nbsp;&nbsp;&nbsp; type : 'submit',<br />
&nbsp;&nbsp;&nbsp;&nbsp; handler : function() {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; winflash.close(this);<br />
&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; }]<br />
&nbsp;&nbsp; })</p>
<p>&nbsp;&nbsp; var winflash = new Ext.Window({<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; title : "插入flash",<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; id : 'flashwin',<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; width : 400,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; height : 120,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; modal : true,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; border : false,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; layout : "fit",<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; iconCls : 'icon-swf',<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; items : flashform</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; });<br />
&nbsp;&nbsp; winflash.show();<br />
&nbsp;&nbsp;<br />
},//插入flash的扩展<br />
<font color="#0000ff">addfilm : function() {<br />
&nbsp;&nbsp; var editor = this;<br />
&nbsp;&nbsp; var filmform = new Ext.FormPanel({<br />
&nbsp;&nbsp;&nbsp; region : 'center',<br />
&nbsp;&nbsp;&nbsp; labelWidth : 70,<br />
&nbsp;&nbsp;&nbsp; frame : true,<br />
&nbsp;&nbsp;&nbsp; bodyStyle : 'padding:5px 5px 0',<br />
&nbsp;&nbsp;&nbsp; autoScroll : true,<br />
&nbsp;&nbsp;&nbsp; border : false,<br />
&nbsp;&nbsp;&nbsp; items : [{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xtype : 'textfield',<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fieldLabel : '多媒体地址',<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; name : 'userfilm',<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; id : 'userfilm',<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; allowBlank : false,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; blankText : 'http://',<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; emptyText : 'http://',<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; height : 25,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; anchor : '98%'<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }],<br />
&nbsp;&nbsp;&nbsp; buttons : [{<br />
&nbsp;&nbsp;&nbsp;&nbsp; text : '添加',<br />
&nbsp;&nbsp;&nbsp;&nbsp; type : 'submit',<br />
&nbsp;&nbsp;&nbsp;&nbsp; handler : function() {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var furl="";//文件物理地址<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var regImg = new RegExp(/\.(mp3|wav|wma|wmv|avi|mpg|asf|rm|rmvb)$/);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var regrm=new RegExp(/\.(rm|rmvb)$/);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; furl=filmform.form.findField('userfilm').getValue();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //var type=furl.substring(furl.length-3).toLowerCase();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (furl==""||furl==null) {return;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(!furl.match(regImg)){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; alert('非法格式，请检查！系统支持：mp3,wav,wma,wmv,avi,mpg,asf,rm,rmvb');<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var element = document.createElement("embed");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; element.src = furl;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; element.style.width="300px";<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; element.style.height="200px";<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(furl.match(regrm))<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; element.type="audio/x-pn-realaudio-plugin";<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; element.type="video/x-ms-asf-plugin";<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; element.loop="true";<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; element.autostart="true";<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(Ext.isIE) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; editor.insertAtCursor(element.outerHTML);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } else {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var selection = editor.win.getSelection();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (!selection.isCollapsed) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; selection.deleteFromDocument();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; selection.getRangeAt(0).insertNode(element);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; winfilm.close();<br />
&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; }, {<br />
&nbsp;&nbsp;&nbsp;&nbsp; text : '关闭',<br />
&nbsp;&nbsp;&nbsp;&nbsp; type : 'submit',<br />
&nbsp;&nbsp;&nbsp;&nbsp; handler : function() {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; winfilm.close(this);<br />
&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; }]<br />
&nbsp;&nbsp; })</font></p>
<p><font color="#0000ff">&nbsp;&nbsp; var winfilm = new Ext.Window({<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; title : "插入多媒体",<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; id : 'filmwin',<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; width : 410,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; height : 120,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; modal : true,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; border : false,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; layout : "fit",<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; iconCls : 'icon-film',<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; items : filmform</font></p>
<p><font color="#0000ff">&nbsp;&nbsp;&nbsp;&nbsp; });<br />
&nbsp;&nbsp; winfilm.show();<br />
&nbsp;&nbsp;<br />
},//插入过媒体的扩展<br />
</font>createToolbar : function(editor) {<br />
&nbsp;&nbsp; HTMLEditor.superclass.createToolbar.call(this, editor);<br />
&nbsp;&nbsp; this.tb.insertButton(16, {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cls : "x-btn-icon",<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; iconCls : "icon-uploadpic",<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; handler : this.addImage,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tooltip : "添加图片",<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; scope : this<br />
&nbsp;&nbsp;&nbsp;&nbsp; });<br />
&nbsp;&nbsp; this.tb.insertButton(17, {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cls : "x-btn-icon",<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; iconCls : 'icon-uploadfile',<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; handler : this.addFile,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tooltip : "添加文件",<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; scope : this<br />
&nbsp;&nbsp;&nbsp;&nbsp; });<br />
&nbsp;&nbsp;&nbsp;&nbsp; this.tb.insertButton(18, {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cls : "x-btn-icon",<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; iconCls : 'icon-swf',<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; handler : this.addflash,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tooltip : "添加flash文件",<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; scope : this<br />
&nbsp;&nbsp;&nbsp;&nbsp; });<br />
&nbsp;&nbsp;&nbsp;&nbsp; this.tb.insertButton(19, {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cls : "x-btn-icon",<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; iconCls : 'icon-film',<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; handler : this.addfilm,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tooltip : "添加多媒体文件",<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; scope : this<br />
&nbsp;&nbsp;&nbsp;&nbsp; });<br />
&nbsp;&nbsp;<font color="#9900ff">this.tb.insertButton(20, {//插入层的扩展，即插入div<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cls : "x-btn-icon",<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; iconCls : 'icon-div',<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; handler : function() {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var element = document.createElement("div");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; element.id="InsertDiv";<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; element.style.backgroundColor="#FAFAFB";<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; element.style.borderWidth="1px";<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; element.style.borderStyle="solid";<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; element.style.borderColor="#AECBE7";<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; element.innerHTML="在此插入内容：&lt;BR&gt;";<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(Ext.isIE) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; editor.insertAtCursor(element.outerHTML);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } else {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var selection = editor.win.getSelection();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (!selection.isCollapsed) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; selection.deleteFromDocument();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; selection.getRangeAt(0).insertNode(element);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; },<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tooltip : "添加div层",<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; scope : this<br />
&nbsp;&nbsp;&nbsp;&nbsp; });<br />
</font>&nbsp;&nbsp;&nbsp;&nbsp; <font color="#ff00ff">this.tb.insertButton(21, { //插入横线的扩展<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cls : "x-btn-icon",<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; iconCls : 'icon-hr',<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; handler :function() {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var element = document.createElement("HR");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(Ext.isIE) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; editor.insertAtCursor(element.outerHTML);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } else {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var selection = editor.win.getSelection();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (!selection.isCollapsed) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; selection.deleteFromDocument();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; selection.getRangeAt(0).insertNode(element);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; },<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tooltip : "添加横线",<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; scope : this<br />
&nbsp;&nbsp;&nbsp;&nbsp; });<br />
</font>}<br />
});<br />
Ext.reg('CJ_starthtmleditor', HTMLEditor);</p>
<p>大家可以根据这个方法继续扩展自己想要的东西。</p>
<p>上面上传图片和附件有一个方法，内容如下：</p>
<p>//上传文件<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [AcceptVerbs(HttpVerbs.Post)]<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public ActionResult AddFiles_newsinfo(FormCollection collection)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var rdto = new ResultDTO();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var c = Request.Files[0];<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (c != null &amp;&amp; c.ContentLength &gt; 0)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string filename = c.FileName;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string destination = Server.MapPath("/UploadFile/");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; c.SaveAs(destination+ filename);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return null;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;</p>
<p>使用的时候，首先在页面中添加该js的引用，然后，在需要的地方加入以下代码：</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; border : false,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; columnWidth : 1,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; layout : 'form',<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; items : [{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fieldLabel : '信息内容',<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xtype : 'CJ_starthtmleditor',<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; name : 'nr',<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; id : 'nr',<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; allowBlank : false,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; anchor : '98%' <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }]</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</p>
<p><span><img class="blogimg" alt="" src="http://hiphotos.baidu.com/jackvoilet/pic/item/9ab739312be9929d5fdf0e35.jpg" border="0" small="0" /><br />
转载地址：<a href="http://hi.baidu.com/jackvoilet/blog/item/38551a3dc709d40cbba16717.html">http://hi.baidu.com/jackvoilet/blog/item/38551a3dc709d40cbba16717.html</a></span></p>
<img src ="http://www.blogjava.net/Reg/aggbug/330211.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Reg/" target="_blank">艾波</a> 2010-08-30 00:01 <a href="http://www.blogjava.net/Reg/archive/2010/08/30/330211.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ExtJs中如何打开指定类型的本地文件</title><link>http://www.blogjava.net/Reg/archive/2010/08/29/330182.html</link><dc:creator>艾波</dc:creator><author>艾波</author><pubDate>Sun, 29 Aug 2010 08:02:00 GMT</pubDate><guid>http://www.blogjava.net/Reg/archive/2010/08/29/330182.html</guid><wfw:comment>http://www.blogjava.net/Reg/comments/330182.html</wfw:comment><comments>http://www.blogjava.net/Reg/archive/2010/08/29/330182.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Reg/comments/commentRss/330182.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Reg/services/trackbacks/330182.html</trackback:ping><description><![CDATA[<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><span style="color: #000000">Ext里的Ext.form.FileUploadField只是简单包装了一个&nbsp;input&nbsp;type为file的对象,这种dom对象是不支持你说的功能的,accept属性不管用.<br />
你说的这个功能目前用flex做最合适,<br />
另外用参照如下方式改写Ext.form.FileUploadField控件也行(这种方式问题很多,推荐用flex,直接去网上下别人写好的swf文件就可以用)<br />
</span><span style="color: #000000">&lt;</span><span style="color: #000000">input&nbsp;type</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">button</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;onclick</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">openfile()</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;value</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">Browse<img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">/&gt;</span><span style="color: #000000"><br />
</span><span style="color: #0000ff">function</span><span style="color: #000000">&nbsp;openfile()&nbsp;<br />
{&nbsp;<br />
</span><span style="color: #0000ff">var</span><span style="color: #000000">&nbsp;fd&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;ActiveXObject(</span><span style="color: #000000">"</span><span style="color: #000000">MSComDlg.CommonDialog</span><span style="color: #000000">"</span><span style="color: #000000">);&nbsp;<br />
fd.Filter&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">图像文件&nbsp;(*.jpg;*.jpeg;*.gif)|*.jpg;*.jpeg;*.gif</span><span style="color: #000000">"</span><span style="color: #000000">;&nbsp;<br />
fd.FilterIndex&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">2</span><span style="color: #000000">;&nbsp;&nbsp;&nbsp;&nbsp;<br />
fd.MaxFileSize&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">128</span><span style="color: #000000">;&nbsp;<br />
fd.ShowOpen();&nbsp;<br />
document.getElementById(</span><span style="color: #000000">"</span><span style="color: #000000">txtFileName</span><span style="color: #000000">"</span><span style="color: #000000">).value&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;fd.Filename;&nbsp;<br />
document.getElementById(</span><span style="color: #000000">"</span><span style="color: #000000">textImage</span><span style="color: #000000">"</span><span style="color: #000000">).src&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;fd.FileName;&nbsp;<br />
}&nbsp;<br />
</span><span style="color: #000000">&lt;/</span><span style="color: #000000">script</span><span style="color: #000000">&gt;</span></div>
<img src ="http://www.blogjava.net/Reg/aggbug/330182.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Reg/" target="_blank">艾波</a> 2010-08-29 16:02 <a href="http://www.blogjava.net/Reg/archive/2010/08/29/330182.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>extjs 图片上传</title><link>http://www.blogjava.net/Reg/archive/2010/08/29/330164.html</link><dc:creator>艾波</dc:creator><author>艾波</author><pubDate>Sun, 29 Aug 2010 05:52:00 GMT</pubDate><guid>http://www.blogjava.net/Reg/archive/2010/08/29/330164.html</guid><wfw:comment>http://www.blogjava.net/Reg/comments/330164.html</wfw:comment><comments>http://www.blogjava.net/Reg/archive/2010/08/29/330164.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Reg/comments/commentRss/330164.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Reg/services/trackbacks/330164.html</trackback:ping><description><![CDATA[<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><span style="color: #000000">上传控件：&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #0000ff">var</span><span style="color: #000000">&nbsp;panel3&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;Ext.form.FormPanel({&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;labelAlign&nbsp;:&nbsp;'left',&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;labelWidth:</span><span style="color: #000000">60</span><span style="color: #000000">,&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;border&nbsp;:&nbsp;</span><span style="color: #0000ff">false</span><span style="color: #000000">,&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;bodyStyle&nbsp;:&nbsp;'padding:4px;',&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;frame&nbsp;:&nbsp;</span><span style="color: #0000ff">false</span><span style="color: #000000">,&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;url&nbsp;:&nbsp;'..</span><span style="color: #000000">/</span><span style="color: #000000">ajaxdata</span><span style="color: #000000">/</span><span style="color: #000000">uploadFile.jsp',&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;autoHeight&nbsp;:&nbsp;</span><span style="color: #0000ff">true</span><span style="color: #000000">,&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;fileUpload&nbsp;:&nbsp;</span><span style="color: #0000ff">true</span><span style="color: #000000">,&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;items&nbsp;:&nbsp;[{&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;id&nbsp;:&nbsp;'file',&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;autoScroll&nbsp;:&nbsp;</span><span style="color: #0000ff">false</span><span style="color: #000000">,&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;xtype&nbsp;:&nbsp;'textfield'&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fieldLabel:'本地上传',&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;name&nbsp;:&nbsp;'file',&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hideLabel&nbsp;:&nbsp;</span><span style="color: #0000ff">true</span><span style="color: #000000">,&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;inputType&nbsp;:&nbsp;'file'//按照Ext默认的属性将inputType设为file时，始终响应不了onchange事件，结果就以autoCreate的方式，如下，因为这种方式相当于html里的input,所以也就响应得了啦！&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000"><br />
</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;autoCreate&nbsp;:&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tag&nbsp;:&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">input</span><span style="color: #000000">"</span><span style="color: #000000">,&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;type&nbsp;:&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">file</span><span style="color: #000000">"</span><span style="color: #000000">,&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;size&nbsp;:&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">20</span><span style="color: #000000">"</span><span style="color: #000000">,&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;autocomplete&nbsp;:&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">off</span><span style="color: #000000">"</span><span style="color: #000000">,&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;onChange&nbsp;:&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">browseImages(this.value);</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}]&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;,&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;buttons&nbsp;:&nbsp;[{&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;text&nbsp;:&nbsp;'上传',&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;handler&nbsp;:&nbsp;</span><span style="color: #0000ff">function</span><span style="color: #000000">()&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;panel3.getForm().submit({&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;waitTitle&nbsp;:&nbsp;"请稍候",&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000"><br />
</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;waitMsg&nbsp;:&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">正在上传<img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span style="color: #000000">"</span><span style="color: #000000">,&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;success&nbsp;:&nbsp;</span><span style="color: #0000ff">function</span><span style="color: #000000">(form,&nbsp;action){},&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;failure&nbsp;:&nbsp;</span><span style="color: #0000ff">function</span><span style="color: #000000">(form,&nbsp;action)&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Global.alert('上传图片失败！');&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;})&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}]&nbsp;&nbsp;&nbsp;&nbsp;<br />
});&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008000">/*</span><span style="color: #008000">&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;*&nbsp;编辑&nbsp;&nbsp;&nbsp;<br />
&nbsp;*&nbsp;@date&nbsp;2008&nbsp;July&nbsp;10&nbsp;&nbsp;&nbsp;<br />
&nbsp;</span><span style="color: #008000">*/</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;<br />
经过实践，还存在一种可以激发change事件的方法；&nbsp;&nbsp;&nbsp;&nbsp;<br />
首先说一下获取form里面的field的三种方法：&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;</span><span style="color: #000000">1</span><span style="color: #000000">）Ext.getCmp('id');&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;</span><span style="color: #000000">2</span><span style="color: #000000">）FormPanel.getForm().findField('id</span><span style="color: #000000">/</span><span style="color: #000000">name');&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;</span><span style="color: #000000">3</span><span style="color: #000000">）Ext.get('id</span><span style="color: #000000">/</span><span style="color: #000000">name');&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">前提是FormPanel在界面上显示出来了&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000"><br />
</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;<br />
应用上面的第1和第2种方法得到的组件均触发不了change事件，只有第三种方法可以&nbsp;&nbsp;&nbsp;&nbsp;<br />
触发，前提是FormPanel要在界面上显示出来，所以需要触发show事件，然后在show&nbsp;&nbsp;&nbsp;&nbsp;<br />
事件里调用Ext.get('id</span><span style="color: #000000">/</span><span style="color: #000000">name')，由于FormPanel经常是放在Ext.Window里的,所&nbsp;&nbsp;&nbsp;&nbsp;<br />
以新的问题又来了：&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;</span><span style="color: #000000">1</span><span style="color: #000000">）调用FormPanel.on('show',fn);</span><span style="color: #008000">//</span><span style="color: #008000">当Window显示出来的时候，事件没有触发&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000"><br />
</span><span style="color: #000000">&nbsp;&nbsp;</span><span style="color: #000000">2</span><span style="color: #000000">）调用FormPanel.getForm().on('show',fn);</span><span style="color: #008000">//</span><span style="color: #008000">情况同上&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000"><br />
</span><span style="color: #000000">&nbsp;&nbsp;</span><span style="color: #000000">3</span><span style="color: #000000">）调用FormPanel.ownerCt.on('show',fn);</span><span style="color: #008000">//</span><span style="color: #008000">OK&nbsp;一切搞定&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000"><br />
</span><span style="color: #000000">其中scope也是需要注意的一项！&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;如果再不行的话，可以先调用:&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FormPanel.ownerCt.on('render',</span><span style="color: #0000ff">function</span><span style="color: #000000">(){&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FormPanel.ownerCt.on('show',fn,</span><span style="color: #0000ff">this</span><span style="color: #000000">);&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;},</span><span style="color: #0000ff">this</span><span style="color: #000000">);&nbsp;&nbsp;&nbsp;<br />
</span></div>
<img src ="http://www.blogjava.net/Reg/aggbug/330164.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Reg/" target="_blank">艾波</a> 2010-08-29 13:52 <a href="http://www.blogjava.net/Reg/archive/2010/08/29/330164.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>&lt;b&gt;&lt;font color=red&gt;Extjs常见问题及解决方案之带参数查询下一页数据异常解决方案&lt;/font&gt;&lt;/b&gt;</title><link>http://www.blogjava.net/Reg/archive/2010/01/26/310864.html</link><dc:creator>艾波</dc:creator><author>艾波</author><pubDate>Tue, 26 Jan 2010 06:40:00 GMT</pubDate><guid>http://www.blogjava.net/Reg/archive/2010/01/26/310864.html</guid><wfw:comment>http://www.blogjava.net/Reg/comments/310864.html</wfw:comment><comments>http://www.blogjava.net/Reg/archive/2010/01/26/310864.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Reg/comments/commentRss/310864.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Reg/services/trackbacks/310864.html</trackback:ping><description><![CDATA[<p>extjs的pagingtoolbar 点击下一页时，出现store的load时间，但是只有start和limit这两个参数，这样就出现了，点击下一页的时候，查询出<br />
的结果和条件不符合，将这个属性加入到pagingtoolbar中，添加自己需要的参数即可，列入：B['参数的名称']='参数的值'</p>
<p>&nbsp;</p>
<p>doLoad:function(C){<br />
&nbsp;var B={},<br />
&nbsp;A=this.paramNames;<br />
&nbsp;B[A.start]=C;<br />
&nbsp;B[A.limit]=this.pageSize;<br />
&nbsp;B['name']=Ext.getCmp("queryNam").getValue();<br />
&nbsp;B['isUse']=Ext.getCmp("queryIsUse").getValue();<br />
&nbsp;B['cpcod']=Ext.getCmp("queryfndcc").getValue();<br />
&nbsp;if(this.fireEvent("beforechange",this,B)!==false){<br />
&nbsp;&nbsp;this.store.load({params:B})<br />
&nbsp;}<br />
}</p>  <img src ="http://www.blogjava.net/Reg/aggbug/310864.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Reg/" target="_blank">艾波</a> 2010-01-26 14:40 <a href="http://www.blogjava.net/Reg/archive/2010/01/26/310864.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Extjs Column布局常见问题及解决方法</title><link>http://www.blogjava.net/Reg/archive/2010/01/26/310860.html</link><dc:creator>艾波</dc:creator><author>艾波</author><pubDate>Tue, 26 Jan 2010 06:30:00 GMT</pubDate><guid>http://www.blogjava.net/Reg/archive/2010/01/26/310860.html</guid><wfw:comment>http://www.blogjava.net/Reg/comments/310860.html</wfw:comment><comments>http://www.blogjava.net/Reg/archive/2010/01/26/310860.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Reg/comments/commentRss/310860.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Reg/services/trackbacks/310860.html</trackback:ping><description><![CDATA[<p>第一次用Extjs的column布局时遇见了很多问题，记录下来，供大家参考。column布局时常会碰见label不能显示或者控件显示错位等问题，导致这些问题的常见原因如下：</p>
<p>1.formPanel上的控件显示不出来，控件的宽度太大，formpanel的宽度相对太小导致。</p>
<p>2.为FormPanel设定了defaultType属性，没有为每个控件单独制定xtype属性。正确的做法是不设置defaultType。</p>
<p>3.在每个column里再加上form layout，再在form里加textfield。</p>
<p>4.在新建TabPanel时，将其属性layoutOnTabChange设置为true即可。（此方法不通用）</p>
 <img src ="http://www.blogjava.net/Reg/aggbug/310860.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Reg/" target="_blank">艾波</a> 2010-01-26 14:30 <a href="http://www.blogjava.net/Reg/archive/2010/01/26/310860.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Extjs.grid 详解</title><link>http://www.blogjava.net/Reg/archive/2010/01/20/310266.html</link><dc:creator>艾波</dc:creator><author>艾波</author><pubDate>Wed, 20 Jan 2010 11:49:00 GMT</pubDate><guid>http://www.blogjava.net/Reg/archive/2010/01/20/310266.html</guid><wfw:comment>http://www.blogjava.net/Reg/comments/310266.html</wfw:comment><comments>http://www.blogjava.net/Reg/archive/2010/01/20/310266.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Reg/comments/commentRss/310266.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Reg/services/trackbacks/310266.html</trackback:ping><description><![CDATA[<span style="color: #0000ff">function</span> rowdblclickFn<span style="color: #0000cc">(</span>grid<span style="color: #0000cc">,</span> <span style="color: #ff0000">rowIndex</span><span style="color: #0000cc">,</span> <span style="color: #ff0000">e</span><span style="color: #0000cc">)</span><span style="color: #0000cc">{</span><span style="color: #ff9900">//双击事件 <br />
</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000ff">var</span> row <span style="color: #0000cc">=</span> grid<span style="color: #0000cc">.</span>store<span style="color: #0000cc">.</span>getById<span style="color: #0000cc">(</span>grid<span style="color: #0000cc">.</span>store<span style="color: #0000cc">.</span><span style="color: #ff0000">data</span><span style="color: #0000cc">.</span><span style="color: #ff0000">items</span><span style="color: #0000cc">[</span><span style="color: #ff0000">rowIndex</span><span style="color: #0000cc">]</span><span style="color: #0000cc">.</span><span style="color: #ff0000">id</span><span style="color: #0000cc">)</span><span style="color: #0000cc">;</span> <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #ff0000">alert</span><span style="color: #0000cc">(</span>row<span style="color: #0000cc">.</span>get<span style="color: #0000cc">(</span><span style="color: #ff00ff">"unitcode"</span><span style="color: #0000cc">)</span><span style="color: #0000cc">)</span><span style="color: #0000cc">;</span> <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000cc">}</span>
<p style="line-height: 150%; margin: 5px"><br />
grid<span style="color: #0000cc">.</span>addListener<span style="color: #0000cc">(</span><span style="color: #ff00ff">'rowdblclick'</span><span style="color: #0000cc">,</span> rowdblclickFn<span style="color: #0000cc">)</span><span style="color: #0000cc">;</span> <br />
<br />
<br />
</p>
<p>Ext2.0是一个javascript框架，它的Grid控件和其它可以显示数据的控件，能够支持多种数据类型，如二维数组、Json数据和XML数据，甚至包括我们自定义的数据类型。Ext为我们提供了一个桥梁Ext.data.Store，通过它我们可以把任何格式的数据转化成grid可以使用的形式，这样就不需要为每种数据格式写一个grid的实现了。</p>
<p>首先，一个表格应该有列定义，即定义表头ColumnModel：<br />
// 定义一个ColumnModel，表头中有四列<br />
var cm = new Ext.grid.ColumnModel([<br />
&nbsp;&nbsp;&nbsp;&nbsp; {header:'编号',dataIndex:'id'},<br />
&nbsp;&nbsp;&nbsp;&nbsp; {header:'性别',dataIndex:'sex'},<br />
&nbsp;&nbsp;&nbsp;&nbsp; {header:'名称',dataIndex:'name'},<br />
&nbsp;&nbsp;&nbsp;&nbsp; {header:'描述',dataIndex:'descn'}<br />
]);<br />
cm.defaultSortable = true;<br />
&nbsp;&nbsp;&nbsp; 该ColumnModel定义了表格的四个列，其每列的名称和对应的数据键。请注意defaultSortable属性，即为每个列都安上一个可以排序的功能。如果只想某些列举有该功能，可以设置：<br />
{header:'编号',dataIndex:'id',Sortable:true},</p>
<p>现在就来看看这个Ext.data.Store是如何转换三种数据的。</p>
<p>1.二维数组：<br />
// ArrayData<br />
var data = [<br />
&nbsp;&nbsp;&nbsp;&nbsp; ['1','male','name1','descn1'],<br />
&nbsp;&nbsp;&nbsp;&nbsp; ['2','male','name1','descn2'],<br />
&nbsp;&nbsp;&nbsp;&nbsp; ['3','male','name3','descn3'],<br />
&nbsp;&nbsp;&nbsp;&nbsp; ['4','male','name4','descn4'],<br />
&nbsp;&nbsp;&nbsp;&nbsp; ['5','male','name5','descn5']<br />
];<br />
// ArrayReader<br />
var ds = new Ext.data.Store({<br />
&nbsp;&nbsp;&nbsp;&nbsp; proxy: new Ext.data.MemoryProxy(data),<br />
&nbsp;&nbsp;&nbsp;&nbsp; reader: new Ext.data.ArrayReader({}, [<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {name: 'id',mapping: 0},<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {name: 'sex',mapping: 1},<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {name: 'name',mapping: 2},<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {name: 'descn',mapping: 3}<br />
&nbsp;&nbsp;&nbsp;&nbsp; ])<br />
});<br />
ds.load();<br />
ds要对应两个部分：proxy和reader。proxy告诉我们从哪里获得数据，reader告诉我们如何解析这个数据。<br />
现在用的是Ext.data.MemoryProxy，它将内存中的数据data作为参数传递。Ext.data.ArrayReader专门用来解析数组，并且告诉我们它会按照定义的规范进行解析，每行按顺序读取四个数据，第一个叫id，第二个叫sex，第三个叫name，第四个descn。这些是跟 cm定义中的dataIndex对应的。这样cm就知道哪列应该显示那条数据了。<br />
mapping属性用于标记data中的读取后的数据与标头的映射关系，一般是不用设置的。但如果我们想让sex的数据中name栏中出现，可以设置mapping值。即id的mapping为2,后者为0。<br />
记得要执行一次ds.load()，对数据进行初始化。</p>
<p><br />
数据的显示显得非常简单：<br />
HTML文件：<br />
&lt;div id='grid'&gt;&lt;/div&gt;<br />
JS文件：<br />
var grid = new Ext.grid.GridPanel({<br />
&nbsp;&nbsp;&nbsp;&nbsp; el: 'grid',<br />
&nbsp;&nbsp;&nbsp;&nbsp; ds: ds,<br />
&nbsp;&nbsp;&nbsp;&nbsp; cm: cm<br />
});<br />
grid.render();</p>
<p>其显示结果为：</p>
<p>&nbsp;</p>
<p>2.如何在表格中添加CheckBox呢？</p>
<p>var sm = new Ext.grid.CheckboxSelectionModel();<br />
var cm = new Ext.grid.ColumnModel([<br />
&nbsp;&nbsp;&nbsp; new Ext.grid.RowNumberer(),//自动行号<br />
&nbsp;&nbsp;&nbsp; sm,//添加的地方<br />
&nbsp;&nbsp;&nbsp; {header:'编号',dataIndex:'id'},<br />
&nbsp;&nbsp;&nbsp; {header:'性别',dataIndex:'sex'},<br />
&nbsp;&nbsp;&nbsp; {header:'名称',dataIndex:'name'},<br />
&nbsp;&nbsp;&nbsp; {header:'描述',dataIndex:'descn'}<br />
]);</p>
<p>var grid = new Ext.grid.GridPanel({<br />
&nbsp;&nbsp;&nbsp; el: 'grid3',<br />
&nbsp;&nbsp;&nbsp; ds: ds,<br />
&nbsp;&nbsp;&nbsp; cm: cm,<br />
&nbsp;&nbsp;&nbsp; sm: sm,//添加的地方<br />
&nbsp;&nbsp;&nbsp; title: 'HelloWorld'<br />
});</p>
<p>&nbsp;</p>
<p>3. 如何做Grid上触发事件呢？<br />
下面是一个cellclick事件<br />
grid.addListener('cellclick', cellclick);<br />
function cellclick(grid, rowIndex, columnIndex, e) {<br />
&nbsp;&nbsp;&nbsp; var record = grid.getStore().getAt(rowIndex);&nbsp;&nbsp; //Get the Record<br />
&nbsp;&nbsp;&nbsp; var fieldName = grid.getColumnModel().getDataIndex(columnIndex); //Get field name<br />
&nbsp;&nbsp;&nbsp; var data = record.get(fieldName);<br />
&nbsp;&nbsp;&nbsp; Ext.MessageBox.alert('show','当前选中的数据是'+data);<br />
}</p>
<p>4.如何做Grid中做出快捷菜单效果：<br />
grid.addListener('rowcontextmenu', rightClickFn);//右键菜单代码关键部分<br />
var rightClick = new Ext.menu.Menu({<br />
&nbsp;&nbsp;&nbsp; id:'rightClickCont', //在HTML文件中必须有个rightClickCont的DIV元素<br />
&nbsp;&nbsp;&nbsp; items: [<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; id: 'rMenu1',<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; handler: rMenu1Fn,//点击后触发的事件<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; text: '右键菜单1'<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; },<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //id: 'rMenu2',<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //handler: rMenu2Fn,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; text: '右键菜单2'<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; ]<br />
});<br />
function rightClickFn(grid,rowindex,e){<br />
&nbsp;&nbsp;&nbsp; e.preventDefault();<br />
&nbsp;&nbsp;&nbsp; rightClick.showAt(e.getXY());<br />
}<br />
function rMenu1Fn(){<br />
&nbsp;&nbsp; Ext.MessageBox.alert('right','rightClick');<br />
}<br />
其Grid如下：</p>
<p>5.如何将一列中的数据根据要求进行改变呢？<br />
比如说性别字段根据其male或female改变显示的颜色，这种ColumnMode中设计：<br />
var cm = new Ext.grid.ColumnModel([<br />
&nbsp;&nbsp;&nbsp; new Ext.grid.RowNumberer(),<br />
&nbsp;&nbsp;&nbsp; sm,<br />
&nbsp;&nbsp;&nbsp; {header:'编号',dataIndex:'id'},<br />
&nbsp;&nbsp;&nbsp; {header:'性别',dataIndex:'sex',renderer:changeSex},<br />
&nbsp;&nbsp;&nbsp; {header:'名称',dataIndex:'name'},<br />
&nbsp;&nbsp;&nbsp; {header:'描述',dataIndex:'descn'}<br />
]);<br />
cm.defaultSortable = true;</p>
<p>function changeSex(value){<br />
&nbsp;&nbsp;&nbsp; if (value == 'male') {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return "&lt;span style='color:red;font-weight:bold;'&gt;红男&lt;/span&gt;";<br />
&nbsp;&nbsp;&nbsp; } else {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return "&lt;span style='color:green;font-weight:bold;'&gt;绿女&lt;/span&gt;";<br />
&nbsp;&nbsp;&nbsp; }<br />
}</p>
<p>其它两种数据的Grid显示是相同的，其不同之处在于数据获取的过程： <br />
6.Json数据<br />
至于这种数据的类型请大家自己看Ajax的书籍：<br />
//JsonData<br />
var data = { <br />
&nbsp;&nbsp;&nbsp; 'coders': [<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; { 'id': '1', 'sex': 'male', 'name':'McLaughlin', 'descn': 'brett@newInstance.com' },<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; { 'id': '2', 'sex': 'male','name':'Hunter', 'descn': 'jason@servlets.com' },<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; { 'id': '3', 'sex': 'female','name':'Harold', 'descn': 'elharo@macfaq.com' },<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; { 'id': '4', 'sex': 'male','name':'Harolds', 'descn': 'elhaross@macfaq.com' }<br />
&nbsp;&nbsp;&nbsp; ],<br />
&nbsp;&nbsp;&nbsp; 'musicians': [<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; { 'id': '1', 'name': 'Clapton', 'descn': 'guitar' },<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; { 'id': '2', 'name': 'Rachmaninoff', 'descn': 'piano' }<br />
&nbsp;&nbsp;&nbsp; ]<br />
}<br />
//ds使用的MemoryProxy对象和JsonReader对象<br />
var ds = new Ext.data.Store({<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; proxy: new Ext.data.MemoryProxy(data),<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; reader: new Ext.data.JsonReader({root: 'coders'}, [<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {name: 'id'},<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {name: 'sex'},<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {name: 'name'},<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {name: 'descn'}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ])<br />
&nbsp;&nbsp;&nbsp; });<br />
ds.load();</p>
<p>var grid = new Ext.grid.GridPanel({<br />
&nbsp;&nbsp;&nbsp; el: 'grid3',<br />
&nbsp;&nbsp;&nbsp; ds: ds,<br />
&nbsp;&nbsp;&nbsp; cm: cm,<br />
&nbsp;&nbsp;&nbsp; sm: sm,<br />
&nbsp;&nbsp;&nbsp; title: 'HelloWorld',<br />
&nbsp;&nbsp;&nbsp; autoHeight: true//一定要写，否则显示的数据会少一行<br />
});<br />
grid.render();</p>
<p>7.使用XML数据：<br />
注意，读取XML数据必须在服务器上进行。<br />
XML数据test.xml的内容：<br />
&lt;?xml version="1.0" encoding="UTF-8"?&gt;<br />
&lt;dataset&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp; &lt;results&gt;2&lt;/results&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp; &lt;item&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;id&gt;1&lt;/id&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;sex&gt;male&lt;/sex&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;name&gt;Taylor&lt;/name&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;descn&gt;Coder&lt;/descn&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp; &lt;/item&gt;<br />
&lt;/dataset&gt;var ds3 = new Ext.data.Store({<br />
&nbsp;&nbsp;&nbsp; url: 'test.xml',&nbsp;&nbsp; //XML数据<br />
&nbsp;&nbsp;&nbsp; reader: new Ext.data.XmlReader({record: 'item'}, [ //使用XmlReader对象<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {name: 'id'},<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {name: 'sex'},<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {name: 'name'},<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {name: 'descn'}<br />
&nbsp;&nbsp;&nbsp; ])<br />
});</p>
<p>8.从服务器获取数据和数据翻页控件<br />
从一个服务器文件，如ASP、JSP或Servlet中获得数据二维Array、JSON或XML数据，也可以被Ext读取，并被Grid显示：<br />
服务器文件data.asp:<br />
&lt;%<br />
&nbsp;&nbsp;&nbsp; start = cint(request("start"))<br />
&nbsp;&nbsp;&nbsp; limit = cint(request("limit"))</p>
<p>&nbsp;&nbsp;&nbsp; dim json<br />
&nbsp;&nbsp;&nbsp; json=cstr("{totalProperty:100,root:[")<br />
&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; for i = start to limit + start-1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; json =json + cstr("{'id':'") +cstr(i) + cstr("','name':'name") + cstr(i) + cstr("','descn':'descn") + cstr(i) + cstr("'}")<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if i &lt;&gt; limit + start - 1 then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; json =json + ","<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; end if<br />
&nbsp;&nbsp;&nbsp; next<br />
&nbsp;&nbsp;&nbsp; json = json +"]}"<br />
&nbsp;&nbsp;&nbsp; response.write(json)<br />
%&gt;</p>
<p>我们可以看到，这个页面会根据传入的start和limit的不同，返回不同的数据，其实质是个分页的代码。下面是start=0,limit=10的JSON数据：<br />
{totalProperty:100,root:[{'id':'0','name':'name0','descn':'descn0'},{'id':'1','name':'name1','descn':'descn1'},{'id':'2','name':'name2','descn':'descn2'},{'id':'3','name':'name3','descn':'descn3'},{'id':'4','name':'name4','descn':'descn4'},{'id':'5','name':'name5','descn':'descn5'},{'id':'6','name':'name6','descn':'descn6'},{'id':'7','name':'name7','descn':'descn7'},{'id':'8','name':'name8','descn':'descn8'},{'id':'9','name':'name9','descn':'descn9'}]}</p>
<p>我们使用分页控件来控制Grid的数据：<br />
Ext.onReady(function(){<br />
&nbsp;&nbsp;&nbsp; var sm = new Ext.grid.CheckboxSelectionModel();<br />
&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; var cm = new Ext.grid.ColumnModel([<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; new Ext.grid.RowNumberer(),<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sm,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {header:'编号',dataIndex:'id'},<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {header:'性别',dataIndex:'sex'},<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {header:'名称',dataIndex:'name'},<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {header:'描述',dataIndex:'descn'}<br />
&nbsp;&nbsp;&nbsp; ]);<br />
&nbsp;&nbsp;&nbsp; cm.defaultSortable = true;</p>
<p>&nbsp;&nbsp;&nbsp; var ds = new Ext.data.Store({<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; proxy: new Ext.data.HttpProxy({url:'data.asp'}),<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; reader: new Ext.data.JsonReader({<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; totalProperty: 'totalProperty',<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; root: 'root'<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }, [<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {name: 'id'},<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {name: 'name'},<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {name: 'descn'}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ])<br />
&nbsp;&nbsp;&nbsp; });<br />
&nbsp;&nbsp;&nbsp; ds.load({params:{start:0,limit:10}});<br />
&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; var grid = new Ext.grid.GridPanel({<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; el: 'grid3',<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ds: ds,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cm: cm,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sm: sm,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; title: 'ASP-&gt;JSON',<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; bbar: new Ext.PagingToolbar({<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; pageSize: 10,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; store: ds,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; displayInfo: true,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; displayMsg: '显示第 {0} 条到 {1} 条记录，一共 {2} 条',<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; emptyMsg: "没有记录"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }),<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tbar: new Ext.PagingToolbar({<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; pageSize: 10,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; store: ds,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; displayInfo: true,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; displayMsg: '显示第 {0} 条到 {1} 条记录，一共 {2} 条',<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; emptyMsg: "没有记录"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; })<br />
&nbsp;&nbsp;&nbsp; });<br />
&nbsp;&nbsp;&nbsp; grid.render();<br />
})</p>
<p>&nbsp;</p>
<p>10.如何在Grid的上方添加按钮呢？<br />
添加按钮的关键之处在于tbar或bbar属性设置Toolbar工具条：<br />
var grid = new Ext.grid.GridPanel({<br />
&nbsp;&nbsp;&nbsp; el: 'grid3',<br />
&nbsp;&nbsp;&nbsp; ds: ds,<br />
&nbsp;&nbsp;&nbsp; cm: cm,<br />
&nbsp;&nbsp;&nbsp; sm: sm,<br />
&nbsp;&nbsp;&nbsp; title: 'HelloWorld',<br />
&nbsp;&nbsp;&nbsp; tbar: new Ext.Toolbar({ <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; items:[ <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; { <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; id:'buttonA' <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ,text:"Button A" <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ,handler: function(){ alert("You clicked Button A"); } <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; new Ext.Toolbar.SplitButton({})<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ,{ <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; id:'buttonB' <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ,text:"Button B" <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ,handler: function(){ alert("You clicked Button B"); } <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '-'<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ,{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; id:'buttonc' <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ,text:"Button c"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ] <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }) <br />
});</p>
<p>&nbsp;</p>
<p>11.将GridPanel放入一个Panel或TabPanel中<br />
var tabs = new Ext.TabPanel({<br />
&nbsp;&nbsp;&nbsp; collapsible: true<br />
&nbsp;&nbsp;&nbsp; ,renderTo: 'product-exceptions'<br />
&nbsp;&nbsp;&nbsp; ,width: 450<br />
&nbsp;&nbsp;&nbsp; ,height:400<br />
&nbsp;&nbsp;&nbsp; ,activeTab: 0<br />
&nbsp;&nbsp;&nbsp; ,items:[<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; title: 'Unmatched'<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; },{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; title: 'Matched'<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; ]<br />
});<br />
tabs.doLayout();</p>
<p>var panel = new Ext.Panel({<br />
&nbsp;&nbsp;&nbsp; renderTo: 'panel',<br />
&nbsp;&nbsp;&nbsp; title:'panel',<br />
&nbsp;&nbsp;&nbsp; collapsible:true,<br />
&nbsp;&nbsp;&nbsp; width:450,<br />
&nbsp;&nbsp;&nbsp; height:400,<br />
&nbsp;&nbsp;&nbsp; items:[grid] //管理grid<br />
});</p>
<p>Panel必须有DIV存在。其包含的Component有items管理。</p>
<p>&nbsp;</p>
<p>本文是在学习Ext2.0的基础上写的，因此，参考了许多网上存在的Blog文章。在此表示致敬！</p>
<p>&nbsp;</p>
<p>本文来自CSDN博客，转载请标明出处：http://blog.csdn.net/boy00fly/archive/2009/03/20/4008317.aspx</p>
 <img src ="http://www.blogjava.net/Reg/aggbug/310266.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Reg/" target="_blank">艾波</a> 2010-01-20 19:49 <a href="http://www.blogjava.net/Reg/archive/2010/01/20/310266.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ExtJs总结(一)&lt;font color=red&gt;[转]&lt;/font&gt;</title><link>http://www.blogjava.net/Reg/archive/2010/01/19/310119.html</link><dc:creator>艾波</dc:creator><author>艾波</author><pubDate>Tue, 19 Jan 2010 10:04:00 GMT</pubDate><guid>http://www.blogjava.net/Reg/archive/2010/01/19/310119.html</guid><wfw:comment>http://www.blogjava.net/Reg/comments/310119.html</wfw:comment><comments>http://www.blogjava.net/Reg/archive/2010/01/19/310119.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Reg/comments/commentRss/310119.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Reg/services/trackbacks/310119.html</trackback:ping><description><![CDATA[<p>问题：使用Grid时，如果出现列标题与复选框错位</p>
<p>使用定义样式</p>
<p>.ext-ie7 .x-menu-item-icon,<br />
.ext-ie6 .x-menu-item-icon {left: -24px;}<br />
.ext-ie8 .x-menu-item-icon,<br />
.ext-ie7 .x-menu-item-icon,<br />
.ext-ie6 .x-menu-item-icon {left: -24px;}<br />
解决</p>
<p>使用grid的遮罩提示时，一定要设表格的height和width。</p>
<p><br />
enableColumnMove和enableColumnResize为false表示禁用拖放列和改变列宽度功能。<br />
默认情况下一次可以选一行或多行。</p>
<p>&nbsp;</p>
<p>stripeRows:true显示为斑马线。</p>
<p><br />
问题：自主决定每列的宽度<br />
1.手动指定<br />
cm(columnmudule)支持给每列设置宽度,如果不指定则默认的宽度为100px.</p>
<p>var cm=new Ext.grid.columnModel({<br />
{header:'列头',dataIndex:'数据源索',width:宽度},....});</p>
<p>2.自动填充<br />
var gird=new Ext.grid.GridPanel({<br />
renderTo:'grid',<br />
store:store,<br />
cm:cm,<br />
viewConfig:{forceFit:true}});</p>
<p>会按照设置的宽度之间的比例进行显示，而不是按照设置的宽度。</p>
<p>3.指定自动填充剩余空间的列<br />
也可以指定一列来完成该操作，但该操作要求该列必须定义时指定id值。<br />
var cm=new Ext.grid.columnModel({<br />
{header:'列头',dataIndex:'数据源索',width:宽度,id:'id标识属性'},....});</p>
<p>接下来设定<br />
Ext.grid.GridPanel({<br />
renderTo:'grid',<br />
store:store,<br />
cm:cm,<br />
autoExpandColumn:'id列标识'});</p>
<p><br />
问题：让列支持排序<br />
在建立列模型时指定storable:true</p>
<p>问题：中文排序<br />
1.为Ext.data.Store设置一个storeInfo:{field:'列名',direction:'ASC|DESC'}属性。</p>
<p><br />
2.重写Ext.data.Store的applySort函数<br />
Ext.data.Store.prototype.applySort = function() {<br />
&nbsp;&nbsp;&nbsp; if (this.sortInfo &amp;&amp; !this.remoteSort) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var s = this.sortInfo, f = s.field;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var st = this.fields.get(f).sortType;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var fn = function(r1, r2) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var v1 = st(r1.data[f]), v2 = st(r2.data[f]);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (typeof(v1) == "string") {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return v1.localeCompare(v2);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return v1 &gt; v2 ? 1 : (v1 &lt; v2 ? -1 : 0);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; };<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.data.sort(s.direction, fn);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(this.snapshot &amp;&amp; this.snapshot != this.data) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.snapshot.sort(s.direction, fn);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; }<br />
};</p>
<p>该函数可以加在ext-all.js文件的未尾。或者放在html页面的最上面，保证在EXT初始化之后，实际代码调用之前执行。</p>
<p>问题：显示日期类型数据列<br />
1.在store的reader属性中增加type和dataFormat两个属性<br />
{name: 'date',type:'date',dateFormat:'Y-j-n H:i:s'}<br />
注意格式化字符串必须要与实际日期的内容相对应。<br />
如日期为2009-5-2 12:30:58 则格式化字符串为'Y-j-n H:i:s'<br />
如日期为2009-05-02 12:30:58 则格式化字符串为'Y-m-d H:i:s'<br />
详细字符串的含义见ext api doc之Date类<br />
以保证能够读取到正确的日期值。</p>
<p>2.在ColumnModel中新加配置<br />
{header: '日期',dataIndex: 'date',type:'date',renderer:Ext.util.Format.dateRenderer('Y年j月n日')}<br />
其中renderer的格式字符串表示显示的格式是什么。</p>
<p>问题：如何在单元格时显示红色的字或图片，按钮等<br />
在ColumnModule的相应列的属性中添加renderer:渲染函数<br />
如:<br />
var cm=new Ext.grid.ColumnModel([<br />
{head:'列头',dataIndex:'数据源索',renderer:渲染函数}]);<br />
渲染函数：<br />
function 函数名(value){<br />
&nbsp;if(value==值）｛<br />
&nbsp; return html+css代码;<br />
&nbsp;}<br />
&nbsp;else<br />
&nbsp;{<br />
&nbsp; return 其它的html+css;<br />
&nbsp;}</p>
<p><br />
}</p>
<p>问题：如何设置表格的表头右键提示为汉字内容</p>
<p>Ext.grid.GridPanel可以看作控制器，Ext.data.Store可以看作模型，Ext.grid.GridView可以看作视图.在构建Ext.grid.GridPanel实例时添加viewConfig属性<br />
var gid=new Ext.grid.GridPanel(<br />
&nbsp;{renderTo:'grid',<br />
&nbsp; store:store,<br />
&nbsp; cm:cm,<br />
&nbsp; viewConfig:{<br />
&nbsp; columnsText:'显示的列',<br />
&nbsp; scrollOffset:30,<br />
&nbsp; sortAscText:'升序',<br />
&nbsp; sortDescText:'降序'<br />
&nbsp; //forceFit:true<br />
&nbsp;}<br />
&nbsp;});</p>
<p>&nbsp;问题：用grid实现分页显示<br />
１.为Grid添加分页工具条<br />
在GridPanel中进行设置</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var grid = new Ext.grid.GridPanel({<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; renderTo: 'grid',<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; autoHeight: true,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; store: store,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cm: cm,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; bbar: new Ext.PagingToolbar({<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; pageSize:3,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; store: store,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; displayInfo: true,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; displayMsg: '显示第 {0} 条到 {1} 条记录，一共 {2} 条',<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; emptyMsg: "没有记录"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; })<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; });<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; store.load();</p>
<p>在使用分页工具条之后，store.load()必须发生在构造GridPanel之后.而且数据源不能使用Ext.data.SimpleStore.Grid每次都会显示数据源中所有的数据.因此数据一定要先在后台分好.</p>
<p>如果要在Grid的头部显示分页工具条，可以将bbar改为tbar。</p>
<p>&nbsp;</p>
<p>２.后台分页</p>
<p>后台jsp的做法：</p>
<p>①取得开始页号与页大小</p>
<p>String start = request.getParameter("start");<br />
String limit = request.getParameter("limit");</p>
<p>②访问数据库取得数据</p>
<p>③将数据输出为json字符串</p>
<p>格式为：{totalProperty:总记录数,root:[｛.....｝，｛.....｝，....]),其中root数组存放当前页的数据.</p>
<p>前台页面的做法：</p>
<p>①修改Store</p>
<p>&nbsp;var store = new Ext.data.Store({<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; proxy: new Ext.data.HttpProxy({url:jsp的url'}),<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; reader: new Ext.data.JsonReader({<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; totalProperty: 'totalProperty',<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; root: 'root'<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }, [<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {name: 'id'},<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {name: 'name'},<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {name: 'descn'}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ])<br />
&nbsp;&nbsp;&nbsp; }); </p>
<p>②向服务器传参</p>
<p>store.load({params:{start:0,limit:10}});</p>
<p>&nbsp;Grid每次都会显示全部在root中的数据，而不论totalProperty的值是多少，所以分页时root数组中的数据由后台jsp控制。</p>
<p>&nbsp;</p>
<p>3.前台分页<br />
EXT中的Grid是把得到的数据一次性显示在表格里，并没有直接为我们提供内存分页的功能，但是在Ext的examples/locale/PapingMemoryProxy.js，它可以从本地数据读取数据同，并实现内存分页。<br />
步骤如下：<br />
①将PagingMemoryProxy.js导入html<br />
②把以前的MemroryProxy换成PagingMemoryProxy<br />
③调用store.load({params:{start:0,limit:3}});显示最开始的3条记录。</p>
<p>&nbsp;4.后台排序</p>
<p>在默认的情况下，Grid只能对当前页的数据进行排序，如果对所有的数据排序，则需要将排序信息提交到后台，由后台将信息组装到SQL里，然后再由后台将处理好的数据返回给前台。<br />
&nbsp;&nbsp;&nbsp; var store = new Ext.data.Store({<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; proxy: new Ext.data.HttpProxy({url:'09_01.jsp'}),<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; reader: new Ext.data.JsonReader({<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; totalProperty: 'totalProperty',<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; root: 'root'<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }, [<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {name: 'id'},<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {name: 'name'},<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {name: 'descn'}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ]),<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; remoteSort: true<br />
&nbsp;&nbsp;&nbsp; });<br />
其中remoteSort: true表示允许后台排序，这样在排序时就会有变化，不会立即显示出排序的结果，而是向后台提交两个参数，分别是sort和dir，表示要排序的字段与升序或降序。</p>
<p>jsp则进行相应的处理<br />
String start = request.getParameter("start");<br />
String limit = request.getParameter("limit");</p>
<p>String sort = request.getParameter("sort");<br />
String dir = request.getParameter("dir");<br />
再进行数据库分页，并返回json格式的分页数据。</p>
<p><br />
本文来自CSDN博客，转载请标明出处：http://blog.csdn.net/hfy211/archive/2009/06/29/4306357.aspx</p>
 <img src ="http://www.blogjava.net/Reg/aggbug/310119.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Reg/" target="_blank">艾波</a> 2010-01-19 18:04 <a href="http://www.blogjava.net/Reg/archive/2010/01/19/310119.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Extjs.grid.Checkbox获值</title><link>http://www.blogjava.net/Reg/archive/2010/01/15/309692.html</link><dc:creator>艾波</dc:creator><author>艾波</author><pubDate>Fri, 15 Jan 2010 07:15:00 GMT</pubDate><guid>http://www.blogjava.net/Reg/archive/2010/01/15/309692.html</guid><wfw:comment>http://www.blogjava.net/Reg/comments/309692.html</wfw:comment><comments>http://www.blogjava.net/Reg/archive/2010/01/15/309692.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Reg/comments/commentRss/309692.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Reg/services/trackbacks/309692.html</trackback:ping><description><![CDATA[<br />
&nbsp;&nbsp;&nbsp;&nbsp;var sm = grid.getSelectionModel();<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;var store = grid.getStore();<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;var view = grid.getView();<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;for(var i = 0; i &lt; view.getRows().length; i ++){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(sm.isSelected(i)){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var record = store.getAt(i);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var name = record.get("rec_name");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var url = record.get("rec_url");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alert(name + "," + url);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;}
 <img src ="http://www.blogjava.net/Reg/aggbug/309692.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Reg/" target="_blank">艾波</a> 2010-01-15 15:15 <a href="http://www.blogjava.net/Reg/archive/2010/01/15/309692.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Extjs grid中文排序异常修正&lt;font color=red&gt;[贴]&lt;/font&gt;</title><link>http://www.blogjava.net/Reg/archive/2009/12/14/305861.html</link><dc:creator>艾波</dc:creator><author>艾波</author><pubDate>Mon, 14 Dec 2009 03:31:00 GMT</pubDate><guid>http://www.blogjava.net/Reg/archive/2009/12/14/305861.html</guid><wfw:comment>http://www.blogjava.net/Reg/comments/305861.html</wfw:comment><comments>http://www.blogjava.net/Reg/archive/2009/12/14/305861.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Reg/comments/commentRss/305861.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Reg/services/trackbacks/305861.html</trackback:ping><description><![CDATA[<p>&nbsp;</p>
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><span style="color: #000000">Ext.data.Store.prototype.applySort&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">function</span><span style="color: #000000">()&nbsp;{&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;重载&nbsp;applySort</span><span style="color: #008000"><br />
</span><span style="color: #000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(</span><span style="color: #0000ff">this</span><span style="color: #000000">.sortInfo&nbsp;</span><span style="color: #000000">&amp;&amp;</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">!</span><span style="color: #0000ff">this</span><span style="color: #000000">.remoteSort)&nbsp;{<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">var</span><span style="color: #000000">&nbsp;s&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.sortInfo,&nbsp;f&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;s.field;<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">var</span><span style="color: #000000">&nbsp;st&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.fields.get(f).sortType;<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">var</span><span style="color: #000000">&nbsp;fn&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">function</span><span style="color: #000000">(r1,&nbsp;r2)&nbsp;{<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">var</span><span style="color: #000000">&nbsp;v1&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;st(r1.data[f]),&nbsp;v2&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;st(r2.data[f]);<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;添加:修复汉字排序异常的Bug</span><span style="color: #008000"><br />
</span><span style="color: #000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(</span><span style="color: #0000ff">typeof</span><span style="color: #000000">(v1)&nbsp;</span><span style="color: #000000">==</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">string</span><span style="color: #000000">"</span><span style="color: #000000">)&nbsp;{&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;若为字符串，</span><span style="color: #008000"><br />
</span><span style="color: #000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;则用&nbsp;localeCompare&nbsp;比较汉字字符串,&nbsp;Firefox&nbsp;与IE&nbsp;均支持</span><span style="color: #008000"><br />
</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;v1.localeCompare(v2);<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;添加结束</span><span style="color: #008000"><br />
</span><span style="color: #000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;v1&nbsp;</span><span style="color: #000000">&gt;</span><span style="color: #000000">&nbsp;v2&nbsp;</span><span style="color: #000000">?</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">1</span><span style="color: #000000">&nbsp;:&nbsp;(v1&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">&nbsp;v2&nbsp;</span><span style="color: #000000">?</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">-</span><span style="color: #000000">1</span><span style="color: #000000">&nbsp;:&nbsp;</span><span style="color: #000000">0</span><span style="color: #000000">);<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;};<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.data.sort(s.direction,&nbsp;fn);<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(</span><span style="color: #0000ff">this</span><span style="color: #000000">.snapshot&nbsp;</span><span style="color: #000000">&amp;&amp;</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.snapshot&nbsp;</span><span style="color: #000000">!=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.data)&nbsp;{<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.snapshot.sort(s.direction,&nbsp;fn);<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
};</span></div>
 <img src ="http://www.blogjava.net/Reg/aggbug/305861.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Reg/" target="_blank">艾波</a> 2009-12-14 11:31 <a href="http://www.blogjava.net/Reg/archive/2009/12/14/305861.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>