您的位置:首页 > Web前端 > JavaScript

EXTJS学习系列提高篇:第七篇(转载)作者殷良胜,制作树形菜单之一

2008-11-03 16:02 459 查看
制作树形菜单的原理是:首先连接数据库,将数据按照树的结构形式返回,在客户端遍历数据时,将每条记录生成一个treepanel,然后在每个treepanel都包含在一个Panel组件里面,最后在将每个Panel组件都添加到一个上级Panel组件里面,最后在将这个上级Panel添加到Viewport里面.这里用到三个Ext组件,分别是:Viewport ; Panel ; TreePanel.

这里先简单介绍下这三个组件:

1,Panel 是Ext控件的基础,它可以用来创建非常漂亮的界面,是一个功能强大,使用却非常简单的容器组件.像面板的展开与关闭功能就非常不错.

2,TreePanel,看名字就知道树的组件就是继承自Panel 组件,在以前如果要在客户端实现一个树是很麻烦的,要处理样式,写很多的脚本,并且还要考虑Ajax.但是现在就方便多了,你要做的就是设置几个属性而已,唯一要注意的是,在显示一棵树时,必须为它指定一个根节点,不过,这更简单.

3,Viewport 代表整个浏览器的显示区域,并会随着显示区域的大小而自动改变,一个页面有且只能够有一个Viewport .

下面在将代码复制出来之前,先看看效果图,因为效果图很精美,能够增加你的胃口:

按顺序将效果图依次展开,包括面板关闭,面板展开,树菜单展开,树菜单依次展开等

1,将整个页面完整复制过来,你就会发现,Ext仅仅几行代码就能够实现非常强大的应用

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="index.aspx.cs" Inherits="Example_TreeAutoLoad_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head runat="server">

<title>测试树形菜单</title>

<link rel="Stylesheet" type="text/css" href="ExtJS/resources/css/ext-all.css" />

<link rel="Stylesheet" type="text/css" href="ExtJS/resources/css/xtheme-purple.css" />

<link rel="Stylesheet" type="text/css" />

<script type="text/javascript" src="ExtJS/adapter/ext/ext-base.js"></script>

<script type="text/javascript" src="ExtJS/ext-all.js"></script>

<script type="text/javascript" src="ExtJS/ext-lang-zh_CN.js"></script>

<style type="text/css">

</style>

</head>

<body>

<form id="form1" runat="server">

<div>

<script type="text/javascript">

//以下是关键代码 因为是提高篇,所以假想你已经对Ext很熟悉了,

//即使不熟悉也没有关系,我会继续把未完的基础篇尽快完成

function makeTreeMenu()

</script>

<script type="text/javascript">

function ready()

Ext.onReady(ready);

</script>

</div>

</form>

</body>

</html>

2,显示完整后台cs代码json.aspx.cs

using Ext;

using System.Collections.Generic;

using Newtonsoft.Json;

public partial class Example_TreeAutoLoad_json : System.Web.UI.Page

3,将涉及的实体类代码完整复制

namespace Ext

4,因业务逻辑仅仅涉及2个查询较为简单,这里不再列出,仅将数据表的生成脚本完整显示

CREATE TABLE [dbo].[TypeTable](

[ID] [int] IDENTITY(1,1) NOT NULL,

[PID] [int] NULL,

[TypeEName] [nvarchar](50) COLLATE Chinese_PRC_CI_AS NULL,

[TypeCName] [nvarchar](50) COLLATE Chinese_PRC_CI_AS NULL,

[DelFlag] [bit] NULL CONSTRAINT [DF_TypeTable_DelFlag] DEFAULT ((0)),

[AddDate] [datetime] NULL CONSTRAINT [DF_TypeTable_AddDate] DEFAULT (getdate()),

CONSTRAINT [PK_TypeTable] PRIMARY KEY CLUSTERED

(

[ID] ASC

)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]

) ON [PRIMARY]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐