主页面前台代码:

 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="MainForm.aspx.cs" Inherits="WebEXT.MainForm" %>

 <!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>
</head>
<script type="text/javascript">
var addTab = function (tabPanel, id, url, title) {
var tab = tabPanel.getComponent(id);
var url = url.replace('#','');
if (!tab) {
tab = tabPanel.add({
id: id,
title: title,
closable: true,
autoLoad: {
showMask: true,
url: url,
mode: "iframe",
maskMsg: "Loading " + url + "..."
}
});
} tabPanel.setActiveTab(tab);
}
</script>
<body>
<form id="form1" runat="server">
<div>
<ext:ResourceManager ID="ResourceManager1" runat="server">
</ext:ResourceManager>
<ext:Viewport ID="Viewport" runat="server" Layout="BorderLayout">
<Items>
<ext:TreePanel runat="server" ID="TreePanel1" Region="West" MinWidth="" Width=""
Title="系统功能目录" Split="true" Border="true">
<Root>
<ext:Node Text="菜单" NodeID="-1" Expanded="True" Icon="ApplicationLink">
</ext:Node>
</Root>
<BottomBar><ext:StatusBar ID="StatusBar1" runat="server" AutoClear=""></ext:StatusBar></BottomBar>
<Store>
<ext:TreeStore runat="server">
<Proxy>
<ext:AjaxProxy Url="/tree-handler.ashx">
</ext:AjaxProxy>
</Proxy>
</ext:TreeStore>
</Store>
<Listeners>
<ItemClick Handler="addTab(#{TabPanel1},'tab'+record.data.id, record.data.href,record.data.text);">
</ItemClick>
</Listeners>
</ext:TreePanel>
<ext:TabPanel ID="TabPanel1" runat="server" Region="Center" ActiveTabIndex="" Border="True"
Title="主界面" AutoScroll="True">
<Items>
<ext:Panel ID="Test1" runat="server" Title="主页" Collapsed="false">
</ext:Panel>
</Items>
</ext:TabPanel>
</Items>
</ext:Viewport>
</div>
</form>
</body>
</html>

异步加载树的代码:

 using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using Ext.Net; namespace WebEXT
{
/// <summary>
/// tree_handler 的摘要说明
/// </summary>
public class tree_handler : IHttpHandler
{ public void ProcessRequest(HttpContext context)
{
//得到node id
string nodeId = context.Request["node"]; SysMenuInfo sysMenuInfo = new SysMenuInfo();
//根据node id 进行处理
NodeCollection nodes = new NodeCollection();
IList<sysMenu> list = new List<sysMenu>();
list = sysMenuInfo.GetChildMenu(nodeId);
foreach (var sysMenu in list)
{
nodes.Add(new Node() { Text = sysMenu.nvcMenuName, Icon = Icon.ApplicationLink, Href = "#"+sysMenu.nvcUrl,NodeID=sysMenu.nvcID});
}
string responseString = nodes.ToJson();
context.Response.Write(responseString);
context.Response.End();
} public bool IsReusable
{
get
{
return false;
}
}
}
}

Ext.net 3.1学习的更多相关文章

  1. MVC+Ext.net零基础学习记录(五)

    继MVC+Ext.net零基础学习记录(四),在后面我在既有的项目上又添加了一个子项目,还用前面提到的方法,进行主项目中引用DLL,然后子项目中生成事件中使用mkdir 进行拷贝 发现一个下午就总是报 ...

  2. MVC+Ext.net零基础学习记录(四)

    在上一篇文章[MVC+Ext.net零基础学习记录(三)]中提到了利用MVC的Area可以做到项目分离,但是实际操作起来还是有很多问题的.比如,对于物理资源的访问,会报:没有相关资源 开始的时候,我在 ...

  3. MVC+Ext.net零基础学习记录(一)

    由于最近开发一个项目,决定使用MVC+EXT.NET,决定将学习的这个过程记录下来 本人和很多菜鸟一样,之前既没有使用过MVC开发,也没有接触过EXT.NET,所以这将是一个大家共同学习的过程,文章中 ...

  4. Ext JS 6 入门学习资料大全(2016-12-14)

    现在 sencha touch已经升级为 Ext JS 6 了重新整理下资料 官方网站:https://www.sencha.com/ 在线文档:http://docs.sencha.com/extj ...

  5. Ext JS 6 入门学习资料大全(2018-03-07)

    现在 sencha touch已经升级为 Ext JS 6 了重新整理下资料 官方网站:https://www.sencha.com/ 在线文档:http://docs.sencha.com/extj ...

  6. MVC+Ext.net零基础学习记录(三)

    这里开始说明一下,如何在MVC项目中引用EXT.NET,这里参考:http://www.cnblogs.com/zhanghaomars/p/3470987.html

  7. MVC+Ext.net零基础学习记录(二)

    很多人在开发一个新的项目时,需要先决定项目的整体架构,是决定使用MVC的同时也不例外,具体包含:项目的多语言性,项目的多风格选择,项目的可扩展性 其中项目的多语言性:http://www.cnblog ...

  8. EXT.NET学习笔记(一) 下载配置使用

    新公司使用ext.net开发,开始学习该知识: 首先下载ext.net,目前我使用的版本为1.7,该版本免费,基本的功能也够用,使用ext.net进行开发时强烈建议使用VS2015,能便捷的提示,大大 ...

  9. extJs学习的资源

    http://www.qeefee.com/zt-extjs   Ext JS 6 入门学习资料大全(2016-12-14)   cddnExtJS学习:http://blog.csdn.net/co ...

随机推荐

  1. html2canvas的踩坑之路

    html2canvas的踩坑之路 前言 早有耳闻这个html2canvas比较坑,但无奈于产品需求的压迫,必须实现html转图片的功能,自此走上了填坑之路,好在最后的效果还算令人满意,这才没有误了产品 ...

  2. Pthon常用模块之requests,urllib和re

    urllib Python标准库中提供了:urllib等模块以供Http请求,但是,它的 API 太渣了. 它需要巨量的工作,甚至包括各种方法覆盖,来完成最简单的任务, 下面是简单的使用urllib来 ...

  3. python selenium 对浏览器标签页进行关闭和切换

    1.关闭浏览器全部标签页 driver.quit() 2.关闭当前标签页(从标签页A打开新的标签页B,关闭标签页A) driver.close() 3.关闭当前标签页(从标签页A打开新的标签页B,关闭 ...

  4. Spring Data Redis示例

    说明 关于Redis:一个基于键值对存储的NoSQL内存数据库,可存储复杂的数据结构,如List, Set, Hashes. 关于Spring Data Redis:简称SDR, 能让Spring应用 ...

  5. Android并发编程 开篇

    该文章是一个系列文章,是本人在Android开发的漫漫长途上的一点感想和记录,我会尽量按照先易后难的顺序进行编写该系列.该系列引用了<Android开发艺术探索>以及<深入理解And ...

  6. leetcode — letter-combinations-of-a-phone-number

    import java.util.*; /** * Source : https://oj.leetcode.com/problems/letter-combinations-of-a-phone-n ...

  7. 使用BizTalk实现RosettaNet B2B So Easy

    使用BizTalk实现RosettaNet B2B So Easy 最近完成了一个vmi-hub的B2B项目,使用Rosettanet 2.0的标准与一家品牌商,OEM,供应商实现B2B.一共交换4个 ...

  8. Linux 强制安装 rpm 包

    Linux 正常安装 rpm 的命令是: rpm -ivh xxx.rpm 重复安装时需加属性: 软件包重复安装将会失败,若仍需要安装必须加 --replacepkgs 属性 软件包的某个文件已在安装 ...

  9. CentOS7日期时间设置方法以及时间基本概念介绍

    在CentOS 6版本,时间设置有date.hwclock命令,从CentOS 7开始,使用了一个新的命令timedatectl. 一.基本概念 1.1 GMT.UTC.CST.DST 时间 (1) ...

  10. C# 位运算详解

    运算符 描述 &(位与) 当两个二进制操作位都为1时,结果就为1 |(位或) 当两个二进制操作位有1个为1时,结果就为1 ^(位异或) 当两个二进制操作位只有1个为1时,结果为1 ~(位非) ...