主页面前台代码:

 <%@ 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. [EXP]Huawei Router HG532e - Command Execution

    #!/bin/python ''' Author : Rebellion Github : @rebe11ion Twitter : @rebellion ''' import urllib2,req ...

  2. Json数据中同字段不同数据类型的解析

    当解析Json数据时,如果碰到同字段不同数据类型的情况,如何处理呢?比如: [ { "code": 1, "data": 33 }, { "code& ...

  3. LearnOpenGL学习笔记(四)——着色器类编写

    之前我们将着色器的代码用glsl写好之后,保存为字符串指针,然后用一个函数去编译它,这是一种手段,对于简单的着色器代码可以这样.但当我们针对复杂的着色器,我们发现编写.编译.管理着色器是一件麻烦事.我 ...

  4. orcal10g下载地址

    http://download.oracle.com/otn/nt/oracle10g/10201/102010_win64_x64_database.zip https://updates.orac ...

  5. 梯度下降法原理与python实现

    梯度下降法(Gradient descent)是一个一阶最优化算法,通常也称为最速下降法. 要使用梯度下降法找到一个函数的局部极小值,必须向函数上当前点对应梯度(或者是近似梯度)的反方向的规定步长距离 ...

  6. got & plt

    got plt类似与Windows PE文件中IAT(Import Address Table). 要使的代码地址无关,基本思想就是把与地址相关的部分放到数据段里面. ELF的做法是在数据段里面建立一 ...

  7. centos swap

    SWAP是Linux中的虚拟内存,用于扩充物理内存不足而用来存储临时数据存在的.它类似于Windows中的虚拟内存.在Windows中,只可以使用文件来当作虚拟内存.而linux可以文件或者分区来当作 ...

  8. Ubuntu下将现有的文件打包成deb包

    转自:http://www.linuxidc.com/Linux/2008-04/12297.htm deb是Debian Linux的软件包格式.一般来说是需要通过编译源码然后制作deb包,今天由于 ...

  9. 用Visual Studio Code写Node.j

    介绍 vsc的宣传语是: 一个运行于 Mac OS X.Windows和 Linux 之上的,针对于编写现代 Web 和云应用的跨平台源代码编辑器. 按它说的,vsc特别适合来作为前端开发编辑器. 内 ...

  10. 在服务器上搭建wordpress个人博客 php7.2+nginx+mysql+wordperss

    买了台VPS,准备搭建一个博客.用过几个博客框架还是觉得Wordpress好用.主题多,插件也非常的便利,而且大多还免费开源.搭建也很简单,其实安装好php+mysql+nginx+wordpress ...