问题描述
如何在tabpanel中加入 n个模块(panel)..希望是动态设置的。。。讲一下思路吧。。 问题补充:babydeed 写道
解决方案
网上下载的! 我把我下载的api给你发站内信吧
解决方案二:
autoload是一个请求 其内部调用了update方法 api:update( Object options ) : void 执行一个异步 请求, 使用响应更新当前元素...执行一个异步 请求, 使用响应更新当前元素。 如果指定了参数,它使用POST方式提交请求, 否则使用GET方式。 注意: 由于异步远程服务器请求的特性,当函数返回时,元素并没有完全更新完成。如需处理返回的数据,使用callback配置,或者一个update 事件处理器。 参数: options : Object 一个包含以下任何选项的配置对象: url : String/Function 请求的URL,或者一个可以返回URL的函数 (如果不指定,默认为 Ext.Ajax.url 的值)。method : String 使用的HTTP提交方式。如果存在params参数,默认使用POST方式,否则使用GET。 params : String/Object/Function 传递给服务器的参数(默认值为 none)。可以将这些参数指定为一个进行url编码好的(url-encoded)字符串;或者一个包含参数的对象,它描述了参数;或者一个函数,它能返回如上这样一个对象。 scripts : Boolean 如果为 true 响应文本中嵌入的任何 <script>标签将会被提取出来并执行 (默认值为 Ext.Updater.defaults.loadScripts)。如果指定了此配置向,回调函数将在脚本执行之后才会被调用。 callback : Function 当服务器响应到达时调用的函数。将会被传递以下参数: el : Ext.Element 被更新的元素。success : Boolean 成功时为true,失败时为false。 response : XMLHttpRequest 处理更新的XMLHttpRequest。 options : Object 调用update时传递的配置对象。 scope : Object 执行回调函数的作用域 (回调函数的this引用。) 如果 params参数是一个函数,作用域也被用作这个函数的作用域。 discardUrl : Boolean 默认情况下,当前请求的URL将会成为当前Updater对象的默认URL,并且将会在后面用在对 refresh 的调用中。如需绕过此行为,传递discardUrl:true (默认值为 false)。timeout : Number 在超时之前等待响应的秒数 (默认值为 Ext.Updater.defaults.timeout).text : String 被用作 Ext.Updater.defaults.indicatorText 层的innerHTML文本 (默认值为 'Loading...')。如需替换整个div,而不仅仅是文本,直接覆盖 Ext.Updater.defaults.indicatorText 。nocache : Boolean 只有GET方式需要,此配置将导致一个额外的、自动产生的参数,它被添加到请求参数之后以便面缓存 (默认值为 Ext.Updater.defaults.disableCaching).例如: um.update({ url: "your-url.php", params: {param1: "foo", param2: "bar"}, // or a URL encoded string callback: yourFunction, scope: yourObject, //(optional scope) discardUrl: true, nocache: true, text: "Loading...", timeout: 60, scripts: false // Save time by avoiding RegExp execution.});返回值: void 你说的有点不太专业了 再者不谈这个 如果是后台返回数据的json格式的 ext有Ext.data.JsonReader 具体你去查查api吧 多看看api吧
解决方案三:
autoLoad:{ scripts : true, nocache : true, url : XX },
解决方案四:
autoLoad可以的 试试
解决方案五:
window一般是new出后 然后 show的从没加入到某个控件下面panel右上角加按钮 可以这样 panel加入tools属性官方api:tools : Array An array of tool button configs to be added to the header tool area. When rendered, each tool is stored as an Element... An array of tool button configs to be added to the header tool area. When rendered, each tool is stored as an Element referenced by a public property called tools. <tool-type> Each tool config may contain the following properties: id : String Required. The type of tool to create. By default, this assigns a CSS class of the form x-tool- <tool-type> to the resulting tool Element. Ext provides CSS rules, and an icon sprite containing images for the tool types listed below. The developer may implement custom tools by supplying alternate CSS rules and background images: toggle (Created by default when collapsible is true ) close //这个就是关闭 然后自己处理close的handler干啥了minimize maximize restore gear pin unpin right left up down refresh minus plus help search save print handler : Function Required. The function to call when clicked. Arguments passed are: event : Ext.EventObject The click event. toolEl : Ext.Element The tool Element. panel : Ext.Panel The host Panel tc : Object The tool configuration object stopEvent : Boolean Defaults to true. Specify as false to allow click event to propagate. scope : Object The scope in which to call the handler. qtip : String/Object A tip string, or a config argument to Ext.QuickTip.register hidden : Boolean True to initially render hidden. on : Object A listener config object specifiying event listeners in the format of an argument to addListener Note that, apart from the toggle tool which is provided when a panel is collapsible, these tools only provide the visual button. Any required functionality must be provided by adding handlers that implement the necessary behavior. Example usage: tools:[{ id:'refresh', qtip: 'Refresh form Data', // hidden:true, handler: function(event, toolEl, panel){ // refresh logic }},{ id:'help', qtip: 'Get Help', handler: function(event, toolEl, panel){ // whatever }}]
解决方案六:
似乎比较困难了
解决方案七:
引用拖曳它时候,可以让它站在另一个窗口位置的属性是什么? 不是很明白你说的拖曳什么?
解决方案八:
不知道为何你的需要很长时间 如果不是代码原因 可以加个等待的提示 比方正在加载中...
解决方案九:
或者 <script type="text/javascript">Ext.onReady(function(){ var tabs = new Ext.TabPanel({ renderTo: document.body,activeTab: 0, height: 400 });var pn= new Ext.Panel({ labelAlign: 'right', labelWidth: 50, frame:true, items:[{ layout:'column',//指定列布局 items: [{ title: 'Column 1', html:"dsdd",//这里可以放items 想放啥就放啥height:400,xtype:"panel",columnWidth: .33 },{ title: 'Column 2', html:"dsdd",xtype:"panel",columnWidth: .33 },{ title: 'Column 3',html:"dsdd",columnWidth: .33 }] } ] });var p = new Ext.Panel({ title:"标题", draggable: false, closable: true, layout:"fit",items:[pn] }); tabs.add(p);tabs.setActiveTab(p);tabs.doLayout();}); </script> </head> <body> </body></html>
解决方案十:
<script type="text/javascript">Ext.onReady(function(){ var tabs = new Ext.TabPanel({ renderTo: document.body,activeTab: 0, height: 400 });var form1 = new Ext.form.FormPanel({ labelAlign: 'right', labelWidth: 50, frame:true, items:[{ layout:'column',//指定列布局 items: [{ title: 'Column 1', html:"dsdd",//这里可以放items 想放啥就放啥height:400,xtype:"panel",columnWidth: .33 },{ title: 'Column 2', html:"dsdd",xtype:"panel",columnWidth: .33 },{ title: 'Column 3',html:"dsdd",columnWidth: .33 }] } ] });var p = new Ext.Panel({ title:"标题", draggable: false, closable: true, layout:"fit",items:[form1] }); tabs.add(p);tabs.setActiveTab(p);tabs.doLayout();}); </script> </head> <body> </body></html>
解决方案十一:
当然可以
解决方案十二:
store在请求前 可以这样store.setBaseParam("参数名","参数值")或者类似 store.on('beforeload', function() {var combo = jcjbxx_comboAllJcxxMc;var baseParams={queryJcid:combo.getValue()};Ext.apply(this.baseParams, baseParams);}); store.load({params:{start:0,limit:pageSize}});
解决方案十三:
数据加载关键还是取得store 然后load 可以携带参数一行几列 可以采用列布局或者hbox我是比较熟悉列布局写法官方api中var p = new Ext.Panel({ title: 'Column Layout - Percentage Only', layout:'column',//指定列布局 items: [{ title: 'Column 1', columnWidth: .25//这一行的宽度 .25代表0.25 },{ title: 'Column 2', columnWidth: .6 },{ title: 'Column 3', columnWidth: .15 }]});
解决方案十四:
你说的 哎 不是很清楚总之还是 new panel然后tab调用add进去new的panel
解决方案十五:
http://microboat.iteye.com/blog/186956这个就是我说的通过ajax请求一个js的应用例子如果代码下载不下来 可以给我发站内信
其他方案:
http://chemzqm.iteye.com/blog/642296 看看这个人写的博客就是通过ajax请求一个js的方式 我项目里都采用这样的方式 (当然还有autoload 或者iframe)