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

人EXTjs grid 超链接

 
阅读更多
Ext.onReady(function(){
    var data = [[1, 'EasyJWeb', 'EasyJF', 'www.easyjf.com'], [2, 'jfox', 'huihoo', 'www.huihoo.org'], [3, 'jdon', 'jdon', 'www.jdon.com'], [4, 'springside', 'springside', 'www.springside.org.cn']];   
    var store = new Ext.data.SimpleStore({
        data: data,
        fields: ["id", "name", "organization", "homepage"]
    });   
    var colM = new Ext.grid.ColumnModel([{
        header: "项目名称",
        dataIndex: "name",
        sortable: true
    }, {
        header: "开发团队",
        dataIndex: "organization",
        sortable: true
    }, {
        header: "网址",
        dataIndex: "homepage",
   renderer:showUrl
    }]);   
    var grid = new Ext.grid.GridPanel({   
        renderTo: "hello",       
        title: "中国Java开源产品及团队",       
        height: 200,       
        width: 600,       
        cm: colM,       
        store: store,       
        autoExpandColumn: 2   
    });   
});
function showUrl(value)
{
return "<a href='http://"+value+"' target='_blank'>"+value+"</a>";}

注意这里的showUrl函数!


  resultRenderer: function (value) {
        return '<a href="http://www.example.com/" onclick="some_function()" >查看</a>';
    }


我们经常会给GridPanel中的某一个column加一个renderer,让它的内容可以变成一个链接,例如:

    resultRenderer: function (value) {
        return '<a href="http://www.example.com/" onclick="some_function()" >查看</a>';
    }

这样在Grid中,查看那两个字就变成链接了

如果点击这个查看的时候,想弹出窗口,那么我们最普通的方式,就是给链接加一个onclick响应函数,

onclick这里调用的函数,必然是通过全局的方式了,这样做有个缺点,就是全局函数的扩散,造成可维护性下降


其实,有一种更合理的处理办法,不论renderer中生成的是链接,还是其他的内容比如button,都是通用的

代码如下

首先给grid添加一个cellclick事件的响应函数

grid.on('cellclick', grid.onCellClick, grid);

响应函数中做如下处理

    onCellClick: function (grid, rowIndex, columnIndex, e) {
        if (e.getTarget().innerHTML === '查看' ) { //借助事件的target来判断,这里是链接可以这样判断,其他方式亦可
            var record = grid.getStore().getAt(rowIndex);  // Get the Record
            var fieldName = grid.getColumnModel().getDataIndex(columnIndex); // Get field name
            var data = record.get(fieldName);//这个data就是点击的单元格的数据了,一定有用的
           
            if (fieldName == 'this_column') {
                //如果是这一列,做这个事
            }
           
            if (fieldName === 'that_column') {
                //如果是另外一列,做另外的事
            }
        }
    }


分享到:
评论

相关推荐

    ExtJs表格点击超链接获取行的值

    在ExtJs框架中,我们经常需要在表格(`Ext.grid.Panel`)中显示超链接,并且当用户点击这些超链接时,能够获取到当前行的数据。为了实现这一功能,我们可以使用`renderer`函数对单元格进行自定义渲染。 **代码示例*...

    Ext GridPanel 中实现加链接操作

    var grid = new Ext.grid.GridPanel({ store: store, columns: [ {header: "ID", dataIndex: "id", width: 50}, {header: "Name", dataIndex: "name", width: 150}, {header: "Email", dataIndex: "email", ...

    精通JS脚本之ExtJS框架.part2.rar

    10.7 为节点设置超链接 10.8 树形的拖放 10.8.1 节点拖放的3种形式 10.8.2 叶子不能append 10.8.3 判断拖放的目标 10.8.4 树之间的拖放 10.9 树形过滤器TreeFilter 10.10 利用TreeSorter对树进行排序 10.11 ...

    精通JS脚本之ExtJS框架.part1.rar

    10.7 为节点设置超链接 10.8 树形的拖放 10.8.1 节点拖放的3种形式 10.8.2 叶子不能append 10.8.3 判断拖放的目标 10.8.4 树之间的拖放 10.9 树形过滤器TreeFilter 10.10 利用TreeSorter对树进行排序 10.11 ...

    JXstar平台开发手册1.2

    - **在表格中添加超链接列**: 如何在Grid中添加一个包含超链接的列。 - **在表格中取树形节点数据**: 如何在Grid中获取树形节点的数据。 - **在树形控件中显示本级复选框**: 如何在树形控件中显示当前层级的复选框。...

    EXT2.0中文教程

    看看extjs那些美丽的例子。 1.1. 一切从extjs发布包开始 1.2. 看看ext-1.1.1的文档 1.3. 看看ext-2.0的文档 1.4. 为什么有的例子必须放在服务器上才能看到效果? 1.5. 为什么自己按照例子写的代码,显示出来总找不...

    Ext 开发指南 学习资料

    3.7.6. 给树节点设置超链接 3.8. 灰壳显灵!让我直接修改树节点的名称吧! 3.9. 我拖,我拖,我拖拖拖。 3.9.1. 树形节点的拖拽有三种形式 3.9.2. 用事件控制拖拽 3.9.2.1. 叶子不能append 3.9.2.2. 把节点扔到哪里...

    UniGUI集合说明

    - **设置超链接控件**:使用`UniHyperLink`控件来实现超链接。 - **绑定事件**:为超链接控件绑定点击事件。 - **跳转逻辑**:在事件处理函数中实现跳转逻辑。 #### 47. 从ASP网站登录到UniGUI中 从ASP网站登录到...

    UniGUI集合说明--追月无名.pdf

    推荐在UniGUI中使用`Grid+Rport`报表控件的理由包括: - **灵活性**:可以灵活地定制报表布局。 - **性能优势**:相较于其他方案,有更好的性能表现。 #### 33. UniGUI的布局面板控件 TUniRegionPanel. `...

    UniGUI 说明

    cmj 等人,给了众多使用 UniGUI 的人很多帮助。 这个文档, 主要是学习与方便后来之人, 文档积累的起因是严肃而正式的, 因为每个人 都有学习的需求;但文档的所谓版权、著述, 我希望它是有公益色彩的东西,如有哪...

Global site tag (gtag.js) - Google Analytics