extjs就不用多介绍了,自从看了extjs的samples后,就决心在下个项目中使用它。自己决心做一个测试项目,主要作为学习的用途。首先选择desktop为切入点。二话不说,首先拿来desktop的samples,很简单就能运行起来了,桌面上有2个快捷方式,一个grid窗口,一个accordion窗口。
第一步先做个简单的test1窗口来代替grid窗口,test1窗口要求border布局,左边是一个tree控件,右边是一个空白panel区,上部是toolbar,点击tree后右边panel能显示相关信息。这应该是一个很常见的窗口。找到了layout的demo,但添加进去后并不是一帆风顺,两个demo单独运行的时候都没问题,但放到一块儿后,test1窗口就死活不能显示。没办法,找找原因吧。
窗口不能显示的原因就是test1窗口使用了layout: border 布局,左边panel的region:west,而右边panel的region:east,问题就出在这里,使用border布局的时候,必须要有一个panel的region:center,否则将导致中断从而无法显示窗口。
设计了一个简单的窗口,代码如下:
-------------------------------------------------------------------------------------------------------------------------------------------------
<?php
/*!
* Copyright(c) 2007-2010 Aavan.
* aavan@163.com
* http://www.xinrui.com
*/
session_start();
?>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>
<?php
include "conn/conn.php";
function getDeptNodes()
{
// 首先输出根节点
echo "{id:'/', text:'Online'";
$conn = mysql_connect("localhost","root","root");
mysql_select_db("gp_db",$conn);
mysql_query("set names gb2312");
$sqlstr = "select * from gp_area";
$result = mysql_query($sqlstr,$conn);
if (mysql_num_rows($result) > 0) {
echo ", children:[";
}
else {
echo "}";
return;
}
// 循环输出所有工区及工区下班组节点
$is_firsta = 1;
while ($rows = mysql_fetch_row($result)) {
if ($is_firsta == 1) {
$is_firsta = 0;
}
else {
echo ",";
}
echo "{id: 'a$rows[0]', text: '".$rows[1]."'";
$sqlstr_team = "select * from gp_team where aid = $rows[0]";
$res_team = mysql_query($sqlstr_team,$conn);
if (mysql_num_rows($res_team) > 0) {
echo ", expanded:true, children:[";
$is_firstt = 1;
while ($rows_team = mysql_fetch_row($res_team)) {
if ($is_firstt == 1) {
$is_firstt = 0;
}
else {
echo ",";
}
echo "{id: 't$rows_team[0]', text: '".$rows_team[1]."', iconCls:'user', leaf: true}";
}
echo "]}";
}
else {
echo "}";
}
}
echo "]}";
}
function getPhp_addarea() {
$root_path = $_SERVER['DOCUMENT_ROOT'];
ec