zoukankan      html  css  js  c++  java
  • ExtJs学习笔记

    最近由于项目需要用到ExtJs,初次接触这个框架,特搜集相关资料,以便查阅

    面板中可以有工具栏,工具栏可以位于面板顶部或底部,Ext中工具栏是由Ext.Toolbar类表示。工具栏上可以存放按钮、文本、分隔符等内容。面板对象中内置了很多实用的工具栏,可以直接通过面板的tools配置选项往面板头部加入预定义的工具栏选项。
    比如下面的代码:
     
    Ext.onReady(function(){
    new Ext.Panel({
        renderTo:"hello",
        title:"hello",//面板标题
        300,
        height:300,
        html:'<h1>Hello,HelloWorld!</h1>',
        tools:[{       //生成面板右上角的工具栏
            id:"save",
          handler:function(){Ext.Msg.alert('最大化','呵呵');}    //点击工具栏调用些方法
            },
            {id:"help",         {id:"close"}],
        tbar:[new Ext.Toolbar.TextItem('工具栏:'),//添加一文本 
          {pressed:true,text:'刷新'},
          {xtype:"tbfill"},//加上这句,后面的就显示到右边去了
          {pressed:true,text:"添加"}, 
          handler:function(){Ext.Msg.alert('帮助','please help me!');}
            }, 


          {pressed:true,text:"保存"}
          ]
          });

    http://blog.csdn.net/liang_liang2009/article/details/6082798

    http://www.cnblogs.com/sky7034/archive/2011/07/16/2108465.html

    ExtJs_Grid的增加、删除、修改、查询操作

    http://www.cnblogs.com/rushoooooo/archive/2011/04/28/2032298.html

    http://www.cnblogs.com/yinzixin/archive/2010/01/03/1638386.html

    http://www.baidu.com/s?wd=ExtJs%D1%A7%CF%B0%B1%CA%BC%C7%2820%29-%C0%FB%D3%C3ExtJs%B5%C4Ajax%D3%EB%B7%FE%CE%F1%B6%CBWCF%BD%BB%BB%A5&rsv_bp=0&rsv_spt=3&rsv_n=2&inputT=641
    http://www.cnblogs.com/yjmyzz/archive/2008/09/03/1283042.html
    http://www.cnblogs.com/yinzixin/archive/2010/01/03/1638386.html

     http://www.cnblogs.com/zhuhuajun/articles/2232605.html

    http://www.cnblogs.com/phinecos/archive/2009/10/08/1578986.html

    View Code
    <%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<dynamic>" %>
    
    <!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>Index</title>
        <link href="http://www.cnblogs.com/Content/ext-3.4.0/resources/css/ext-all.css" rel="stylesheet" type="text/css" />
        <script src="http://www.cnblogs.com/Content/ext-3.4.0/adapter/ext/ext-base-debug.js" type="text/javascript"></script>
        <script src="http://www.cnblogs.com/Content/ext-3.4.0/ext-all-debug.js" type="text/javascript"></script>
        <script language="javascript" type="text/javascript">
            Ext.onReady(function () {
                Ext.MessageBox.alert("Hello", "Hello,World!");
                //输出一个窗体
                var CreateWindow = function () {
                    var win = new Ext.Window({ title: "Hello",  300, length: 200, html: '<h1>Hello,World!</h1>' });
                    win.show();
                };
                var fnAjaxDemo = function () {
                    var myData;
                    var name = Ext.get("name").dom.value; //也可使用原生态js
                    Ext.Ajax.request({
                        url: "/Home/GetInfoDemo?name=" + encodeURIComponent(name), // 服务端地址
                        success: function (data) {
                            myData = data.responseText; //服务端传回的数据
                            Ext.MessageBox.alert("返回数据", myData);
                        },
                        failure: function () {
                            alert("failure!");
                        }
                    });
                };
    
                var CreatePanel = function () {
                    //var panel = new Ext.Panel({ renderTo: "panelTest", title: "Hello",  300, heigh: 200, html: 'Hello,World!' });
                    var panel = new Ext.Panel({
                        renderTo: "panelTest",
                         300,
                        height: 200,
                        html: '创建panel',
                        tools: [
                        { id: "save" },
                        { id: "help", handler: function () { Ext.Msg.alert("helper", "请求帮助!"); } },
                        { id: "close" }
                        ],
                        tbar: [
                        new Ext.Toolbar.TextItem('工具栏'),
                        { xtype: "tbfill" },
                        { pressed: true, text: '添加' },
                        { xtype: "tbseparator" },
                        { pressed: true, text: '保存' }
                        ]
                        //items: [{ title: "面板1", height: 30 }, { title: "面板2", height: 30 }, { title: "面板3", height: 30}]
                    });
                };
                Ext.get("btn").on("click", fnAjaxDemo);
                //Ext.get("btnPanel").on("click", CreatePanel);
                Ext.get("btnPanel").addListener("click", CreatePanel);
                Ext.get("btnWin").on("click", CreateWindow);
            })
        </script>
    </head>
    <body>
        <div>
            <p>
                ExtJs的Ajax</p>
            Name:
            <input id="name" type="text" />
            <input type="button" id="btn" value="获取服务端数据" onclick="GetExtAjax();" />
            <input type="button" id="btnPanel" value="输出panel" />
            <input type="button" id="btnWin" value="输出Window" />
            <div id="panelTest">
            </div>
        </div>
    </body>
    </html>

     NewGrid

    View Code
    <%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<dynamic>" %>
    
    <!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>Index</title>
        <link rel="stylesheet" type="text/css" href="http://www.cnblogs.com/Content/ext-3.4.0/resources/css/ext-all.css" />
        <script type="text/javascript" src="http://www.cnblogs.com/Content/ext-3.4.0/adapter/ext/ext-base.js"></script>
        <script src="http://www.cnblogs.com/Content/ext-3.4.0/ext-all.js" type="text/javascript"></script>
        <script>
       Ext.onReady(function(){
            //初始化Extjs
            Ext.QuickTips.init();
            Ext.BLANK_IMAGE_URL ='http://www.cnblogs.com/Content/ext-3.4.0/resources/images/default/s.gif';
            //首先读取数据,Json格式
            var store = new Ext.data.Store
            ({      
                //读取数据源用json方法(三种方法1.读取json用JsonReader,2读取数组使用ArrayReader3.
    
    读取XML用XmlReader)
                reader:new Ext.data.JsonReader
                ({
                root:"Table",
                //从数据库中读取的总记录数
                totalProperty: 'totalCount',
                //要读取出来的字段
                fields:
                [
                    'ID','RoleName','Remark'
                ]
                }),   
                //获取数据源(该方法返回一个json格式的数据源)
                proxy: new Ext.data.HttpProxy
                ({
                    url: '/NewGrid/GetJsonDemo'      
                })
            });
            //定义GridPanel的列名称
           var cms=new Ext.grid.ColumnModel
           (
           [
            new Ext.grid.RowNumberer({header:"编号",30,align:"center"}),//添加一个编号
            new Ext.grid.CheckboxSelectionModel(),//增加 CheckBox多选框列
            //header列名称,dateIndex对应数据库字段名称,sortable支持排序
            {header:"角色名称",dataIndex:"RoleName",sortable:true},
            {header:"角色备注",dataIndex:"Remark",sortable:true}
             
           ]
           );
          //编辑panel,用于添加,修改
          var Edit_Panel=new Ext.FormPanel({    
            labelWidth: 75, 
            labelAlign:'right',
            frame:true,      
            bodyStyle:'padding:5px 5px 0',
             380,
            defaults: { 150},
            defaultType: 'textfield',
            items: 
            [
                {
                    fieldLabel: '角色编号',
                    name: 'ID',
                    xtype:'hidden'
                },
                {
                    //label名称
                    fieldLabel: '角色名称',
                    //textfield名称
                    name: 'RoleName',
                    //textfield正则
                    allowBlank:false,//是否允许为空!false不允许
                    blankText:"不允许为空",//提示信息
                    minLength :2 , 
                    minLengthText : "姓名最少2个字符", 
                    maxLength : 4 , 
                    maxLengthText :"姓名至多4个字符",
                    regex:/[/u4e00-/u9fa5]/,//正则表达式
                    regexText:"只能为中文"
                },
                {
                   fieldLabel: '角色编码',
                   name: 'RoleCode',
                   allowBlank:false,
                   blankText:"不允许为空",
                    xtype:'hidden'
                },
                {
                 fieldLabel: '说明',
                    name: 'Remark'
                
                }
            ]
        
        });
         //弹出层
       var Edit_Window = new Ext.Window({
            collapsible: true,
            maximizable: true,
            minWidth: 300,
            height :180 ,
            minHeight: 200,
            378,
            modal:true,
            closeAction:"hide",
            //所谓布局就是指容器组件中子元素的分布,排列组合方式
            layout: 'form',//layout布局方式为form
            plain: true,
            title:'编辑对话框',
            bodyStyle: 'padding:5px;',
            buttonAlign: 'center',
            items: Edit_Panel,
            buttons: [{
                text: '保存',
                //点击保存按钮后触发事件
                handler:function(){
                //得到编辑模板中id为ID的控件名称的值
                var ID=Edit_Panel.getForm().findField('ID').getValue();
                  //得到编辑模板中id为RoleName的控件名称的值
                var RoleName=Edit_Panel.getForm().findField('RoleName').getValue();
                //var RoleCode=Edit_Panel.getForm().findField('RoleCode').getValue();
                var Remark=Edit_Panel.getForm().findField('Remark').getValue();
                var jsonData='';
                if(ID=='')
                //如果ID为空的话说明是添加操作,否则是修改操作,将ID,角色名称(RoleName),角色编码
    
    (RoleCode),说明(Remark),操作类型(添加操作:AddUser,更新操作:UpdateUser)写成json的形式作为参数
    
    传到后台
               jsonData= {operatype:'AddRole',ID:ID,RoleName:RoleName,Remark:Remark};
                else
               jsonData= {operatype:'UpdateRole',ID:ID,RoleName:RoleName,Remark:Remark};
                Edit_Window.hide();
                CodeOperaMethod('http://www.cnblogs.com/WebUI/RoleManage/RoleManege.aspx',jsonData);
                //重新加载store信息
                store.reload();
                grid.store.reload();
                }
            },{
                text: '重置',  handler:function(){Edit_Panel.getForm().reset();}
            }]
        });
               //后台数据交互方法
           var CodeOperaMethod=function(u,p){
           var conn=new Ext.data.Connection();
           conn.request({
           //请求的 Url
           url:u,
           // 传递的参数
           params:p,
           method:'post',
           scope:this,
           //回调函数,根据执行结果作不同的操作,如果成功提示操作成功的信息,如果失败提示失败的
    
    信息
           callback:function(options,success,response){
           if(success){ Ext.MessageBox.alert("提示","操作成功!");
           store.reload();
           grid.store.reload();
           }
           else{ Ext.MessageBox.alert("提示","所提交的操作失败!");}
           
           }});};
           
             //删除方法
           function delRecord(btn,pressed)
           {
            //获取ID为MenuGridPanel的控件名称得到当前选中项
            rows = Ext.getCmp("MenuGridPanel").getSelectionModel().getSelections();
                     if(rows.length==0)
                     {
                     Ext.Msg.alert("","请至少选择一行你要删除的数据!");
                     return;
                     }
            Ext.MessageBox.confirm('提示', '确实要删除所选的记录吗?',showResult);}
            function showResult(btn)
            {
             //确定要删除你选定项的信息
            if(btn=='yes')
            {
                var row=Ext.getCmp("MenuGridPanel").getSelectionModel().getSelections();
                var jsonData="";
                for(var i=0,len=row.length;i<len;i++)
                {
                //得到当前选中项的ID集合
                var ss =row[i].get("ID");
                 if(i==0)
                 jsonData = jsonData + ss; 
                 else
                 jsonData = jsonData + ","+ ss; 
             }
             //将要删除的信息传递到后台处理,然后重新加载grid
             var conn = new Ext.data.Connection();
             conn.request({
             url:"http://www.cnblogs.com/WebUI/RoleManage/RoleManege.aspx?DelRecode=", 
             params:{strProjects:jsonData},
             method: 'post',
             scope: this,
             callback:function(options,success, response){ 
             if(success){ 
             Ext.MessageBox.alert("提示","所选记录成功删除!");
             store.reload();
             grid.store.reload();
             } 
             else 
             { Ext.MessageBox.alert("提示","所选记录删除失败!");} 
             } 
             })
             
             }
             }; 
           //定义一个智能感应的ComboBox
           var cmbox=new Ext.form.ComboBox
           (
           {
             id:'cmbox',
             title:'角色名称',
             //加载数据源
             store:store,
             //从本地加载数据(智能感应效果)
             mode:"local",
             //显示字段类似DropDownlist中的DataTextField 
             displayField:'RoleName',
             //类似DropDownlist中的DataValueField  
             valueField:'ID',
             160,
             //不允许为空
             allowBlank:false,
             //默认值
            emptyText:'请输入角色名称进行搜索...',
            //当为空的时候提示
            blankText:'请输入角色名称...'
           }
           );
           //构建GridPanel
            var grid = new Ext.grid.GridPanel
            ({
                id:'MenuGridPanel',
                renderTo:"gridpanel",//将GridPanel添加到id为gridpanel的区域
                title: '角色管理',//网格标题
                '100%',
                height: 500,
                store: store,//grid数据源
                loadMask: {msg:'加载数据中,请等待......'},//显示等待数据加载(loading)图标
                cm:cms,//列名称
                sm: new Ext.grid.CheckboxSelectionModel(),//要显示多选框列必加此项
                //定义一个toolbar
                tbar:
                [              
                 {
                 text:"编辑",
               cls: 'x-btn-text-icon details',
               icon:"../ext-3.1.0/blue16_042.png",
               handler:function()
               {
                //重置编辑模板
               Edit_Panel.getForm().reset();
               rows = Ext.getCmp("MenuGridPanel").getSelectionModel().getSelections();
                 if(rows.length!=1)
                 {
                 Ext.Msg.alert("","请你选择一行数据进行操作!");
                 return;
                 }
                 //打开窗体
                  Edit_Window.show();
                  //将选中项的信息绑定到TextField中
                  Edit_Panel.getForm().findField('ID').setValue(rows[0].get('ID'));
                //Edit_Panel.getForm().findField('RoleCode').setValue(rows[0].get('RoleCode'));
                Edit_Panel.getForm().findField('RoleName').setValue(rows[0].get('RoleName'));
                Edit_Panel.getForm().findField('Remark').setValue(rows[0].get('Remark'));
                
                 }
                 }, 
                 {
                 text:"添加",
             cls: 'x-btn-text-icon details',
             icon:"../ext-3.1.0/add_16.png",
             handler:function()
               {
               Edit_Panel.getForm().reset();
               Edit_Window.show();
               }
               }, 
                 {
                 text:"删除",
                cls: 'x-btn-text-icon details',
                 icon:"../ext-3.1.0/blue16_016.png",
                handler:delRecord
                },'-',
                
                //定义一个搜索框
                cmbox,
                  '-',
                {
                
                 xtype:'button',
                  cls: 'x-btn-text-icon details',
               icon:"../ext-3.1.0/blue16_068.png",
                 text:"查找",
                 handler:function()
                 {
                  //Ext.getCmp("searchfield").getValue()得到Textfield的值
                  //过滤条件为角色名称(RoleName)来搜索匹配的信息,
                  //filter方法第一个参数:过滤的字段名称,第二个参数要匹配的信息,
                  //第三个参数true表示从开始位置开始搜索,第四个参数false表示不区分大小写
                  store.filter('RoleName',Ext.getCmp("cmbox").getValue(),false,false);
                 }
                 }
           
               ],
                bbar: new Ext.PagingToolbar
                ({//自带分页工具条
                    pageSize: 10,
                    store: store,
                    displayInfo: true,
                    displayMsg: '当前为第[{0}]</span>条至第[{1}]条数据,共[{2}]条数据',
                    emptyMsg: "没有数据"
                })
            });
            //从Json中加载数据start为0表示显示默认第一页,limit表示每页显示的数量为10
            store.load({params:{start:0, limit:10}});
        });
        </script>
    </head>
    <body>
        <div id="gridpanel">
        </div>
    </body>
    </html>


    Grid

    View Code
    <%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<dynamic>" %>
    
    <!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>Index</title>
        <link rel="stylesheet" type="text/css" href="http://www.cnblogs.com/Content/ext-3.4.0/resources/css/ext-all.css" />
        <script type="text/javascript" src="http://www.cnblogs.com/Content/ext-3.4.0/adapter/ext/ext-base.js"></script>
        <script src="http://www.cnblogs.com/Content/ext-3.4.0/ext-all.js" type="text/javascript"></script>
        <script language="javascript" type="text/javascript">
            Ext.onReady(function () {
                var data = [
            [1, 'hu1', 'lucky1', 'http://blog.sina.com.cn/s/blog_6482ea940100gzps.html'],
            [2, 'hu2', 'lucky2', 'http://blog.sina.com.cn/s/blog_6482ea940100gzps.html'],
            [3, 'hu3', 'lucky3', 'http://blog.sina.com.cn/s/blog_6482ea940100gzps.html']
            ];
    
                //var store = new Ext.data.SimpleStore({ data: data, fields: ['id', 'name', 'en_name', 'homepage'] });
                var store = new Ext.data.ArrayStore({
                    fields:
                [{ name: 'id', type: 'int' },
                { name: 'name', type: 'string' },
                { name: 'en_name', type: 'string' },
                { name: 'homepage', type: 'string' }
                ]
                });
    
                store.loadData(data);
                /*
                var grid = new Ext.grid.GridPanel({
                    renderTo: 'Hello',
                    title: '人员信息',
                    height: 150,
                     600,
                    coloumns: [
                { header: 'ID', dataIndex: 'id', sortable: true,  80 },
                { header: '姓名', dataIndex: 'name', sortable: true },
                { header: '英文名', dataIndex: 'en_name', sortable: true },
                { header: '个人网站', dataIndex: 'homepage', sortable: true },
                ],
                    store: store,
                    autoExpandColumn: 2
                });*/
                var grid = new Ext.grid.GridPanel({
                    store: store,
                    columns: [
                {
                    id: 'id',
                    header: 'ID',
                     75,
                    sortable: true,
                    dataIndex: 'id'
                },
                {
                    header: '姓名',
                     75,
                    sortable: true,
                    dataIndex: 'name'
                },
                {
                    header: '英文名',
                     75,
                    sortable: true,
                    dataIndex: 'en_name'
                },
                {
                    header: '网站',
                     250,
                    sortable: true,
                    dataIndex: 'homepage'
                }
            ],
                    stripeRows: true,
                    //autoExpandColumn: 'id',
                    height: 350,
                     600,
                    title: 'Array Grid',
                    // config options for stateful behavior
                    stateful: true,
                    stateId: 'grid'
                });
                grid.render('Hello');
            })
        </script>
    </head>
    <body>
        <div id="Hello">
        </div>
    </body>
    </html>

    Tree

    效果:

    code:

    View Code
    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="DynamicExtTree_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 href="../ext/resources/css/ext-all.css" rel="stylesheet" type="text/css" />
        <link href="../ext/resources/css/ext-patch.css" rel="stylesheet" type="text/css" />
    
        <script src="../ext/adapter/ext/ext-base.js" type="text/javascript"></script>
        <script src="../ext/ext-all.js" type="text/javascript"></script>
        <script src="../ext/ext-all-debug.js" type="text/javascript"></script>
    
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
            <script type="text/javascript">
                function GetTreePanel() {
    
                    var root = new Ext.tree.AsyncTreeNode({
                        text: '部门分类',
                        id: '-1',
                        draggable: false
                    });
    
                    var TreePanel = new Ext.tree.TreePanel({
                        animate: true, //以动画形式伸展,收缩子节点 
                        title: "导航菜单>>",
                        rootVisible: true, //是否显示根节点  
                        autoScroll: true,
                        autoHeight: true,
                        autoWidth: true,
                        border: false,
                        leaf:true,
                        useArrows: false, //是否显示小箭头  
                        root:root,
                        loader: new Ext.tree.TreeLoader({
                            dataUrl: "Handler.ashx"
                        })
                    });
                    TreePanel.setRootNode(root);
                    return TreePanel;
                }
            </script>
    
            <script type="text/javascript">
                Ext.onReady(function () {
                    var TreePanel = GetTreePanel();
    
    
                    var pnNorth = new Ext.Panel({
                        id: 'pnNorth',
                        // autoWidth: true,
                        frame: true,
                        region: 'north',
                        html: '<div style="background-image:url(../images/logo.gif); height:50px;"><h1>管理系统</h1></div>'
                    });
    
                    var pnWest = new Ext.Panel({
                        id: "pnWest",
                         200,
                        //autoWidth: true,
                        height: 'auto',
                        split: true, //显示分隔条
                        region: 'west',
                        collapsible: true,
                        items: [TreePanel]
                    });
    
                    var pnCenter = new Ext.TabPanel({
                        region: 'center',
                        activeTab: 0
                    });
    
                    TreePanel.on("click", function (node) {
                        //alert(node.id);
                        if (node.isLeaf()) {//为叶子结点时,点击进入链接
                            var tab = pnCenter.getComponent("newtab" + node.id);
                            var src = "../Default2.aspx?id=" + node.id; //src路径,传递参数
                            if (!tab) {
                                pnCenter.add({
                                    title: '' + node.text,
                                    id: 'newtab' + node.id,
                                    autoHeight: true,
                                    closable: true, //是否可关闭
                                    html: '<iframe src="' + src + '" width="100%" height="500px;"></iframe>'
                                });
                                pnCenter.setActiveTab("newtab" + node.id);
                            }
                            //                        else {
                            //                            alert("存在了,text:" + node.text + ",id:" + node.id);
                            //                        }
                        }
                    });
    
                    var vp = new Ext.Viewport({
                        layout: "border",
                        items: [
                            pnNorth,
                            pnWest,
                            pnCenter
                        ]
                    });
    
    
               
    
                });
            </script>
        </div>
        </form>
    </body>
    </html>

    tree右键menu

    效果:

    code:

    View Code
    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="tree.aspx.cs" Inherits="DynamicExtTree_tree" %>
    
    <!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 href="../ext/resources/css/ext-all.css" rel="stylesheet" type="text/css" />
        <link href="../ext/resources/css/ext-patch.css" rel="stylesheet" type="text/css" />
    
        <script src="../ext/adapter/ext/ext-base.js" type="text/javascript"></script>
        <script src="../ext/ext-all.js" type="text/javascript"></script>
        <script src="../ext/ext-all-debug.js" type="text/javascript"></script>
        <script language="javascript">
            /**  
            创建简单Menu  
            */
            function createMenu() {
                //创建一个菜单   
                var myMenu = new Ext.menu.Menu({
                    items: [{
                        text: '右键快捷方式1',
                        menu: [{
                            text: '右键子菜单1'
                        }, {
                            text: '右键子菜单2'
                        }]
                    }, {
                        text: '右键快捷方式2'
                    }]
                });
    
                //因为每个树中由N个节点组成的,所以要创建树,必须创建树所包含的节点(树必须有一个或多个根节点).   
                var vRoot = new Ext.tree.TreeNode({ text: '根节点1' }); //创建节点   
                var vNode1 = new Ext.tree.TreeNode({ text: '子节点1' }); //创建节点   
                vNode1.appendChild(new Ext.tree.TreeNode({ text: '子节点11' }));
                vNode1.appendChild(new Ext.tree.TreeNode({ text: '子节点12' }));
                var vNode2 = new Ext.tree.TreeNode({ text: '子节点1' }); //创建节点   
                vRoot.appendChild(vNode1); //在vRoot根节点上创建子节点.   
                vRoot.appendChild(vNode2); //在vRoot根节点上创建子节点.   
    
                var obj = {
                    title: '我的Menu练习',
                    renderTo: document.body,
                    height: 300,
                     600,
                    root: vRoot,
                    tbar: [{
                        text: '文件',
                        menu: { items: [{
                            text: '打开',
                            icon: '../images/open.gif'
                        }, {
                            text: '保存',
                            icon: '../images/save.gif'
                        }, '-', {
                            text: '另存为...',
                            handler: function (b) {
                                var win = new Ext.Window({
                                    title: '另存为对话框',
                                     200,
                                    height: 200,
                                    html: '可以在此处进行其他操作'
                                });
                                win.show();
                            }
                        }]
                        }
                    }, '-', {//在两个按钮之间添加一条分隔线   
                        text: '编辑'
                    }, '->', {//右顶格显示'帮助'按钮   
                        text: '帮助'
                    }],
                    listeners: {//添加监听器,实现右键Tree显示定义菜单myMenu   
                        contextmenu: function (n, e) {
                            myMenu.showAt(e.getXY());
                        }
                    }
                };
                var myPanel = new Ext.tree.TreePanel(obj);
            }
            Ext.onReady(createMenu); //创建动态树  
        </script>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
        
        </div>
        </form>
    </body>
    </html>

    code:

    View Code
    <%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<dynamic>" %>
    
    <!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>Index</title>
        <link rel="stylesheet" type="text/css" href="http://www.cnblogs.com/Content/ext-3.4.0/resources/css/ext-all.css" />
        <script type="text/javascript" src="http://www.cnblogs.com/Content/ext-3.4.0/adapter/ext/ext-base.js"></script>
        <script src="http://www.cnblogs.com/Content/ext-3.4.0/ext-all.js" type="text/javascript"></script>
        <script language="javascript" type="text/javascript">
        /*
            Ext.onReady(function () {
    
    
                var data = [
            [1, 'hu1', 'lucky1', 'http://blog.sina.com.cn/s/blog_6482ea940100gzps.html'],
            [2, 'hu2', 'lucky2', 'http://blog.sina.com.cn/s/blog_6482ea940100gzps.html'],
            [3, 'hu3', 'lucky3', 'http://blog.sina.com.cn/s/blog_6482ea940100gzps.html']
            ];
    
    
    
    
                //var store = new Ext.data.SimpleStore({ data: data, fields: ['id', 'name', 'en_name', 'homepage'] });
                var store = new Ext.data.ArrayStore({
                    fields:
            [{ name: 'id', type: 'int' },
            { name: 'name', type: 'string' },
            { name: 'en_name', type: 'string' },
            { name: 'homepage', type: 'string' }
            ]
                });
    
                Ext.MessageBox.alert("gg",data);
                store.loadData(data);
    
                var grid = new Ext.grid.GridPanel({
                    store: store,
                    columns: [
            {
                id: 'id',
                header: 'ID',
                 75,
                sortable: true,
                dataIndex: 'id'
            },
            {
                header: '姓名',
                 75,
                sortable: true,
                dataIndex: 'name'
            },
            {
                header: '英文名',
                 75,
                sortable: true,
                dataIndex: 'en_name'
            },
            {
                header: '网站',
                 250,
                sortable: true,
                dataIndex: 'homepage'
            }
            ],
                    stripeRows: true,
                    //autoExpandColumn: 'id',
                    height: 350,
                     600,
                    title: 'Array Grid',
                    // config options for stateful behavior
                    stateful: true,
                    stateId: 'grid'
                });
                grid.render('Hello');
            })
    
            */
    
    
            /*
            Ext.Ajax.request({
            url: "/Home/GetInfoDemo?name=" + encodeURIComponent(name), // 服务端地址
            success: function (data) {
            myData = data.responseText; //服务端传回的数据
            Ext.MessageBox.alert("返回数据", myData);
            },
            failure: function () {
            alert("failure!");
            }
            });
            */
    
            
            Ext.onReady(function () {
    
                Ext.Ajax.request({
                    url: "/Grid/GetJson",
                    success: function (data) {
                        myData = data.responseText; //服务端传回的数据
                        Ext.MessageBox.alert("返回数据", myData);
    
                        var store = new Ext.data.ArrayStore({
                            fields:
                [{ name: 'id', type: 'int' },
                { name: 'name', type: 'string' },
                { name: 'en_name', type: 'string' },
                { name: 'homepage', type: 'string' }
                ]
                        });
    
                        store.loadData(myData);
    
                        var grid = new Ext.grid.GridPanel({
                            store: store,
                            columns: [
                {
                    id: 'id',
                    header: 'ID',
                     75,
                    sortable: true,
                    dataIndex: 'id'
                },
                {
                    header: '姓名',
                     75,
                    sortable: true,
                    dataIndex: 'name'
                },
                {
                    header: '英文名',
                     75,
                    sortable: true,
                    dataIndex: 'en_name'
                },
                {
                    header: '网站',
                     250,
                    sortable: true,
                    dataIndex: 'homepage'
                }
            ],
                            stripeRows: true,
                            //autoExpandColumn: 'id',
                            height: 350,
                             600,
                            title: 'Array Grid',
                            // config options for stateful behavior
                            stateful: true,
                            stateId: 'grid'
                        });
                        grid.render('Hello');
    
                    },
                    failure: function () {
                        alert("failure!");
                    }
    
                });
    
            })
            
        </script>
    </head>
    <body>
        <div id="Hello">
        </div>
    </body>
    </html>

    code

    View Code
    <%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<dynamic>" %>
    
    <!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>Index</title>
        <link rel="stylesheet" type="text/css" href="http://www.cnblogs.com/Content/ext-3.4.0/resources/css/ext-all.css" />
        <script type="text/javascript" src="http://www.cnblogs.com/Content/ext-3.4.0/adapter/ext/ext-base.js"></script>
        <script src="http://www.cnblogs.com/Content/ext-3.4.0/ext-all.js" type="text/javascript"></script>
        <script language="javascript" type="text/javascript">
        /*
            Ext.onReady(function () {
    
    
                var data = [
            [1, 'hu1', 'lucky1', 'http://blog.sina.com.cn/s/blog_6482ea940100gzps.html'],
            [2, 'hu2', 'lucky2', 'http://blog.sina.com.cn/s/blog_6482ea940100gzps.html'],
            [3, 'hu3', 'lucky3', 'http://blog.sina.com.cn/s/blog_6482ea940100gzps.html']
            ];
    
    
    
    
                //var store = new Ext.data.SimpleStore({ data: data, fields: ['id', 'name', 'en_name', 'homepage'] });
                var store = new Ext.data.ArrayStore({
                    fields:
            [{ name: 'id', type: 'int' },
            { name: 'name', type: 'string' },
            { name: 'en_name', type: 'string' },
            { name: 'homepage', type: 'string' }
            ]
                });
    
                Ext.MessageBox.alert("gg",data);
                store.loadData(data);
    
                var grid = new Ext.grid.GridPanel({
                    store: store,
                    columns: [
            {
                id: 'id',
                header: 'ID',
                 75,
                sortable: true,
                dataIndex: 'id'
            },
            {
                header: '姓名',
                 75,
                sortable: true,
                dataIndex: 'name'
            },
            {
                header: '英文名',
                 75,
                sortable: true,
                dataIndex: 'en_name'
            },
            {
                header: '网站',
                 250,
                sortable: true,
                dataIndex: 'homepage'
            }
            ],
                    stripeRows: true,
                    //autoExpandColumn: 'id',
                    height: 350,
                     600,
                    title: 'Array Grid',
                    // config options for stateful behavior
                    stateful: true,
                    stateId: 'grid'
                });
                grid.render('Hello');
            })
    
            */
    
    
            /*
            Ext.Ajax.request({
            url: "/Home/GetInfoDemo?name=" + encodeURIComponent(name), // 服务端地址
            success: function (data) {
            myData = data.responseText; //服务端传回的数据
            Ext.MessageBox.alert("返回数据", myData);
            },
            failure: function () {
            alert("failure!");
            }
            });
            */
    
    
            Ext.onReady(function () {
    
                Ext.Ajax.request({
                    url: "/Grid/GetJson",
                    success: function (data) {
    
                        //var json = '[{"id":18,"name":"西安","en_name":27,"homepage":1},{"id":53,"name":"广州","en_name":27,"homepage":1}]';
                        //eval("data1=" + json);
                        //Ext.MessageBox.alert("返回数据data1", data1);
                        //Ext.MessageBox.alert("返回数据data1", json);
                        //var jsonResult = Ext.util.JSON.decode(data.responseText);
                        //Ext.MessageBox.alert("返回数据", jsonResult);
                        myData = data.responseText; //服务端传回的数据
                        //Ext.MessageBox.alert("返回数据", myData);
    
                        eval("newmyData=" + myData);
                        Ext.MessageBox.alert("返回数据", newmyData);
                        //var newmyData = Ext.util.JSON.decode(myData);
                        //Ext.MessageBox.alert("返回数据", newmyData);
    
                        /*
                        var newmyData = [
                        [1, 'hu1', 'lucky1', 'http://blog.sina.com.cn/s/blog_6482ea940100gzps.html'],
                        [2, 'hu2', 'lucky2', 'http://blog.sina.com.cn/s/blog_6482ea940100gzps.html'],
                        [3, 'hu3', 'lucky3', 'http://blog.sina.com.cn/s/blog_6482ea940100gzps.html']
                        ];
                        */
    
    
    
                        var store = new Ext.data.JsonStore({
                            fields:
                [{ name: 'id', type: 'int' },
                { name: 'name', type: 'string' },
                { name: 'en_name', type: 'string' },
                { name: 'homepage', type: 'string' }
                ]
                        });
    
                        /*
                        var store = new Ext.data.ArrayStore({
                            fields:
                [{ name: 'id', type: 'int' },
                { name: 'name', type: 'string' },
                { name: 'en_name', type: 'string' },
                { name: 'homepage', type: 'string' }
                ]
                        });
                        */
    
                        //store.loadData(myData);
                        store.loadData(newmyData);
                        //store.loadData(data1);
                        var grid = new Ext.grid.GridPanel({
                            store: store,
                            columns: [
                {
                    id: 'id',
                    header: 'ID',
                     75,
                    sortable: true,
                    dataIndex: 'id'
                },
                {
                    header: '姓名',
                     75,
                    sortable: true,
                    dataIndex: 'name'
                },
                {
                    header: '英文名',
                     75,
                    sortable: true,
                    dataIndex: 'en_name'
                },
                {
                    header: '网站',
                     250,
                    sortable: true,
                    dataIndex: 'homepage'
                }
            ],
                            stripeRows: true,
                            //autoExpandColumn: 'id',
                            height: 350,
                             600,
                            title: 'Array Grid',
                            // config options for stateful behavior
                            stateful: true,
                            stateId: 'grid'
                        });
                        grid.render('Hello');
    
                    },
                    failure: function () {
                        alert("failure!");
                    }
    
                });
    
            })
            
        </script>
    </head>
    <body>
        <div id="Hello">
        </div>
    </body>
    </html>

    code:

    View Code
    #region GetJson数据
            public string GetJson()
            {
                //JsonResult js = null;
                var id = 1;
                var name = "huxing";
                var en_name = "lucky";
                var homepage = "www.lucky.com";
                //String json = "{'id':1282,'text':'安全监察'},{'id':2,'text':'调度管理'},{'id':4,'text':'营销管理'},{'id':6,'text':'生产管理'}";   
                //string data = "[{\"name\":\"" + name + "\",\"age\":\"" + age + "\"},{\"name\":\"lete\",\"age\":23}]";
                string data = "[{\"id\":\"" + id + "\",\"name\":\"" + name + "\",\"en_name\":\"" + en_name + "\",\"homepage\":\"" + homepage + "\"},{\"id\":\"2\",\"name\":\"hu2\",\"en_name\":\"hu22\",\"homepage\":\"www.126.com\"}]";
                //string data = "[[\"id\":\"" + id + "\",\"name\":\"" + name + "\",\"en_name\":\"" + en_name + "\",\"homepage\":\"" + homepage + "\"],[\"id\":\"2\",\"name\":\"hu2\",\"en_name\":\"hu22\",\"homepage\":\"www.126.com\"]]";
    
                //string data = "{\"id\":\"" + id + "\",\"name\":\"" + name + "\",\"en_name\":\"" + en_name + "\",\"homepage\":\"" + homepage + "\"}";
                //string data = "[{1, 'hu1', 'lucky1', 'http://blog.sina.com.cn/s/blog_6482ea940100gzps.html'},{2, 'hu2', 'lucky2', 'http://blog.sina.com.cn/s/blog_6482ea940100gzps.html'},{3, 'hu3', 'lucky3', 'http://blog.sina.com.cn/s/blog_6482ea940100gzps.html'}]";
                //string data = "1,'hu1','lucky1',http://blog.sina.com.cn/s/blog_6482ea940100gzps.html,2,hu2,lucky2,http://blog.sina.com.cn/s/blog_6482ea940100gzps.html,3,hu3,lucky3,http://blog.sina.com.cn/s/blog_6482ea940100gzps.html";
                return data;
                //return js.Deserialize(data);
            }
            #endregion

     Ext.Ajax.request({
                url: url,
                method: "POST",
                success: function (response, option) {
                    window.location.href = "file:///E:/2012-05-23%20金网通通用扫描系统.rar"; //这样就可以弹出下载对话框了
                    //window.location.href = "E://2012-05-23%20金网通通用扫描系统.rar"; //这样就可以弹出下载对话框了
                    //window.location.href = "E:/2012070422535400工资表.xls";
                },
                failure: function (response, option) {
                    response = Ext.util.JSON.decode(response.responseText);
                    core.alert.error(response.msg);
                }
            });

  • 相关阅读:
    知识管理(knowledge Management)2
    Maven手动添加依赖的jar文件到本地Maven仓库
    Maven手动添加依赖的jar文件到本地Maven仓库
    Jquery 操作 Select 详解
    Jquery 操作 Select 详解
    JSTL获取当日时间与数据时间比较
    JSTL获取当日时间与数据时间比较
    MySQL免安装版配置部署
    MySQL免安装版配置部署
    JS比较两个日期大小
  • 原文地址:https://www.cnblogs.com/lucky_hu/p/2543680.html
Copyright © 2011-2022 走看看