
AllEvents = function(node, tabs) {
//用户管理
if(node.id == 2){//每一个树的节点有一个id,先判断每一个id然后知道我要去添加哪个
if (tabs.findById(3) == null) {//确定 tab中要增加的这个有没有被添加过
tabs.add(User.createGrid(3))//添加方法
tabs.setActiveTab(3)//设置显示新添加的tab
} else {
tabs.setActiveTab(3)
}
}
}
类似这种 当然这个方法不是很完美,目前还没发现更好的
//这是我的树
FileTree = new Ext.tree.TreePanel({
loader : new Ext.tree.TreeLoader({
dataUrl : "query!loadModule.action"
}),
rootVisible : false,
autoScroll : true,
region : 'center'
})
var root = new Ext.tree.AsyncTreeNode({
text : '分类',
draggable : false,
id : '0'
})
FileTree.setRootNode(root)
FileTree.on('click', function(node, e) {
var id = node.id
if (node.isLeaf) {
AllEvents(node, tabs)
e.stopEvent()
}
})
return FileTree
首先创建一个TabPanel 对象 例如:mainmain 里面有个首页对应其他十几个页面的按钮,点按钮添加一个tab :
var tab =main.getComponent(tabId)//得到tab组建 tabId为main的id
tab = main.add(new Ext.Panel({id:tabId,title:tabTitle,autoScroll:true,layout: 'fit',border:false,closable:true}))
main.setActiveTab(tab)
如果不用按钮 ,延迟加载可以用:
var loadmask = loadMaskModel
loadmask.show()
loadmask.hide()在这个之后再main.add()
或者也可以监听 onload 事件 之后 在main.add()
如果你不嫌烦的话 在每个界面加一个定时器,
Ext.TaskMgr.start(Add)
var Add= {
run : function() {
setTimeout(
//main.add()的内容
), 10000)
},
interval : 30 * 1000 //每30秒执行一次
}
所有界面加载后记得关闭这个定时器。
或许还有跟好办法 但是这个要看你具体的要求是什么。
为主对话框类添加一个公有成员CString变量m_strEdt标识文本框的值。为按钮添加单击响应。加入语句:
CTabSampleDlg *pDlg = GetParent()->GetParent()
pDlg->m_strEdt = _T("HELLO")
OnSelchangeTab 事件代码如下
void CTabSampleDlg::OnSelchangeTab(NMHDR* pNMHDR, LRESULT* pResult)
{
// TODO: Add your control notification handler code here
switch (m_tab.GetCurSel())
{
case 0:
m_page1.ShowWindow(SW_SHOW)
m_page2.ShowWindow(SW_HIDE)
break
case 1:
m_page1.ShowWindow(SW_HIDE)
m_page2.ShowWindow(SW_SHOW)
m_page2.SetDlgItemText(文本框控件ID,m_strEDt)
break
default:
break
}
*pResult = 0
}
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)