`
literary_fly
  • 浏览: 92972 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

在GridPanel上单击右键显示菜单的制作

EXT 
阅读更多
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>无标题页</title>
    <link rel="stylesheet" type="text/css" href="resources/css/ext-all.css"/>
    <script type="text/javascript" src="ExtBase/ext-base.js"></script>
    <script type="text/javascript" src="ExtBase/ext-all.js"></script>
    <script type="text/javascript" src="ExtBase/ext-lang-zh_CN.js"></script>
</head>
<body>
    <form runat="server">
    <div>  
    <div ></div>
    <script type="text/javascript">
   var grid;  
   function DataGrid()
   {
        var cm = new Ext.grid.ColumnModel
        ([
            {header: "编号", width: 120, dataIndex: 'ID', sortable: true},
            {header: "标题", width: 180, dataIndex: 'Title', sortable: true},
            {header: "作者", width: 115, dataIndex: 'Author', sortable: true},
            {header: "来源", width: 100, dataIndex: 'Source', sortable: true},
            {header: "日期", width: 100, dataIndex: 'PostDate', sortable: true}
        ]);  
        var titleInfo = "编辑数据";    
        var fields = [{name:"ID"},{name:"Title"},{name:"Author"},{name:"Source"},{name:"PostDate"}];
        var newStore = new Ext.data.Store
        ({
                proxy:new Ext.data.HttpProxy({url:"JsonData.aspx?param=initData"}),
                reader:new Ext.data.JsonReader({totalProperty:"totalPorperty",root:"result",fields:fields})
        }); 
        newStore.load({params:{start:0,limit:16}});
        var pagingBar = new Ext.PagingToolbar
        ({
                displayInfo:true,
                emptyMsg:"没有数据显示",
                displayMsg:"显示从{0}条数据到{1}条数据,共{2}条数据",
                store:newStore,
                pageSize:16
        });       
        this.gridPanel = new Ext.grid.GridPanel
        ({
                cm:cm,
                id:"grid_panel",
                title:titleInfo,
                store:newStore,
                frame:false,
                border:true,                   
                layout:"fit",  
                pageSize:16,   
                autoWidth:true,
                height:400,
                clicksToEdit:1,
                viewConfig:{forceFit:true},
                bbar:pagingBar
        });
        this.gridPanel.on("rowcontextmenu",open_rowcontextmenu);
    }   
    function open_rowcontextmenu(grid,rowIndex,e)
    {
        e.preventDefault();
        var menus = new Ext.menu.Menu
        ([
            {
                xtype:"button",text:"编辑",pressed:true,icon:"imgMenus/3.png",
                handler:function(){Edit(grid,rowIndex,e ,"编辑");}
            },
            {
                xtype:"button",text:"删除",pressed:true,icon:"imgMenus/3.png",
                handler:function(){Edit(grid,rowIndex,e ,"删除");}
            }    
        ]);
        menus.showAt(e.getPoint());
    }
    function Edit(grid,rowIndex,e,titleInfo)
    {   
        var record = grid.getStore().getAt(rowIndex);
        var currID =    record.data.ID;
        var currAuthor =  record.data.Author;
        var currTitle =  record.data.Title;
        var currSource =  record.data.Source;
        var currPostDate =  record.data.PostDate;
       
        var p = new Ext.FormPanel
        ({
             frame:true,labelWidth:36,
             items:
              [
                  {xtype:"hidden",id:"ID",width:201,value:currID},
                  {xtype:"textfield",fieldLabel:"标题",id:"Title",width:201,value:currTitle},
                  {xtype:"textfield",fieldLabel:"作者",id:"Author",width:200,value:currAuthor},
                  {xtype:"textfield",fieldLabel:"来源",id:"Source",width:201,value:currSource},
                  {xtype:"datefield",fieldLabel:"日期",id:"PostDate",width:201,value:currPostDate,format:"Y年m月d日"}
              ]
        });
       
        var win = new Ext.Window
        ({
              title:titleInfo+"窗口",autoHeight:true,width:300,resizable:false,buttonAlign:"center", modal:true,//height:300,         
              items:[p],
              bbar:
              [                
                  {xtype:"button",text:"确定"+titleInfo,handler:function(){Edit_Sub(win,titleInfo);}},
                  '','',
                  {xtype:"button",text:"关闭",handler:function(){win.destroy();}}
              ]
        });
        win.show();
    }
    function Edit_Sub(winParam,titleInfo)
    {
       var currID =  Ext.getCmp("ID").getValue();
       winParam.destroy();
       if(titleInfo=="删除")
       {
            Ext.Msg.alert("消息提示","删除成功");
            //具体删除代码自己实现
       }
       else
       {
            Ext.Msg.alert("消息提示","编辑成功");
            //具体修改代码自己实现
       }      
    }
    function MakePanel(obj)
    {
        this.panel_def = new Ext.Panel
        ({
            layout:"fit",
            border:true,
            frame:true,
            title:"数据浏览",
            autoWidth:true,
            height:500,
            id:"Viewport_ID",
            renderTo:"panel_id",
            items:[obj.gridPanel]                   
        });
    } 
    function  loader()
    {
        Ext.QuickTips.init();
        grid = new DataGrid();
        MakePanel(grid);  
    }
    Ext.onReady(loader);
    </script>
    </div>
    </form>
</body>
</html>
分享到:
评论

相关推荐

    Ext.grid.GridPanel右键菜单

    右键菜单的资料,代码已经详细描写。请仿照文件中所描述即可使用,不限于EXT4.0以上版本使用。

    ExtJs grid行 右键菜单的两种方法

    // 在鼠标位置显示菜单 } } }); ``` 在这个例子中,我们创建了一个包含两个菜单项的菜单,并在Grid的`rowcontextmenu`事件处理器中显示它。`preventDefault()`方法用于阻止浏览器的默认右键菜单,而`showAt()`...

    ext.net 动态创建gridpanel

    在 `newtpanel.aspx` 文件中,可能会使用 `XTemplate` 或 `ClientScript` 来在客户端执行JavaScript代码,以便在特定事件(如按钮点击)时动态显示或隐藏GridPanel。 3. **配置数据源**: GridPanel的数据源可以...

    给Extjs的GridPanel增加“合计”行

    在实际应用中,我们经常需要在GridPanel底部显示一行“合计”行,以便对某一列或多列的数据进行求和或其他统计操作。这篇博文“给Extjs的GridPanel增加‘合计’行”将指导我们如何实现这一功能。 首先,我们需要...

    EXTJSEXT实例GridPanel.

    这个"EXTJSEXT实例GridPanel"可能是为了演示基本的GridPanel使用方法,包括数据绑定、列定义以及如何在页面上渲染GridPanel。通过学习和实践这个例子,开发者可以快速掌握EXTJS中数据展示的核心技术。配合EXT提供的...

    Extjs中的GridPanel

    列也可以有自己的右键菜单,如排序、隐藏列等。 12. **国际化**: GridPanel 的列标题和提示信息可以通过配置进行国际化,方便多语言应用开发。 博客链接 &lt;https://zxf-noimp.iteye.com/blog/629829&gt; 可能提供了...

    gridpanel常用操作

    在本文中,我们将深入探讨`GridPanel`在Extnet框架中的常见操作,包括选择行、前后台方法调用、增删行以及弹出窗体的实现方式。这些操作是开发Web应用程序时处理数据表单和数据展示的关键部分。 首先,我们来看如何...

    Gridpanel多表头的扩展

    多表头在EXTJS 2.2版本中被引入,提供了更灵活的列结构,允许用户将列分为多个层次,每个层次可以有自己的表头,这样的设计在显示有复杂关系的数据时非常有用。例如,我们可以创建一个表头来表示部门,然后在下一级...

    Ext.net实现GridPanel拖动行、上移下移排序功能DEMO

    对于GridPanel中拖动选中行排序的实现,网上有不少ExtJs实现的例子,但是没有找到使用Ext.net实现的,正好最近有个需求要使用,干脆来写一个。 DEMO功能说明: 1、拖动GridPanel选中行到新位置排序。 2、在拖动结束...

    gridPanel添加按钮

    在`gridPanel`中添加按钮通常是指在工具栏上增加操作元素,以便用户可以执行特定的动作,如导出数据、编辑记录或者执行自定义操作。 1. **添加工具栏**: 在`gridPanel`中,我们可以通过配置选项来添加一个工具栏。...

    ExtJs GridPanel双击事件获得双击的行

    在ExtJs中,GridPanel是用于展示数据的常用组件,它可以提供丰富的功能,如排序、分页、筛选等。在实际应用中,我们经常需要监听用户的交互行为,比如双击行进行进一步的操作。本篇文章将深入讲解如何在ExtJs ...

    Ext的gridpanel控件二次加载问题

    通常,这可能是由于在重新加载时,没有正确地处理GridPanel实例或者数据源,导致旧的实例被覆盖或者销毁,新的数据未能正确显示。在某些情况下,可能是由于页面刷新或者重定向导致GridPanel的DOM元素被清除,从而...

    扩展GridPanel

    扩展的GridPanel,让其分页后保持选择状态

    Extjs入门教程(treePanel和GridPanel)

    它提供了丰富的组件库,包括TreePanel和GridPanel,这两个组件在数据展示和管理中扮演着重要角色。 TreePanel是ExtJS中的一个树形控件,它允许你展示层级结构的数据。在教程中,你可能会学到如何创建和配置...

    Ext GridPanel 中实现加链接操作

    本文将详细介绍如何在 Ext GridPanel 中实现加链接操作,包括基本原理、代码实现及注意事项。 #### 一、Ext GridPanel 基础 在了解如何添加链接之前,我们首先需要理解 Ext GridPanel 的基本结构。Ext GridPanel ...

    ext gridpanel 跨行

    "ext gridpanel 跨行"这个主题主要涉及到在GridPanel中实现单元格或行的跨行显示,这在展示复杂数据或需要组合信息时非常有用。 首先,让我们深入理解什么是GridPanel。在Ext JS中,GridPanel是一个表格视图,它...

    Coolite 中前台获取 GridPanel 当前选择行值的代码

    Coolite的GridPanel组件还可以添加右键菜单功能,这在用户交互上提供方便。通过设置GridPanel的ContextMenuID属性,可以将一个Menu组件与GridPanel关联起来。Menu组件包含多个MenuItem组件,每个MenuItem可以绑定一...

    GridPanel中的单元格不能选中复制的解决方法

    "GridPanel中的单元格不能选中复制的解决方法" Ext.grid.GridPanel 是一个功能强大且广泛使用的Grid控件,但是它存在一个很大的缺陷:单元格的内容不能选中,没法选中就没法复制,这给用户带来了很多不便。这个...

    ExtJS的GridPanel导出excel文件

    ExtJS的GridPanel导出excel文件,方便快捷易懂!

    Ext实现GridPanel内嵌行内嵌表格(RowExpander)

    在本文中,我们将深入探讨如何使用ExtJS库中的RowExpander插件来实现在GridPanel中内嵌行内的表格。ExtJS是一个强大的JavaScript框架,它提供了丰富的组件和功能,用于构建复杂的Web应用程序。RowExpander插件是...

Global site tag (gtag.js) - Google Analytics