iteye_8232
2009-10-22 20:52
浏览 353

Ext gridPanel columns问题

看了一下API 好像columns的属性没有链接属性 我想实现一列的他的值都是“修改”当点击修改的时候 就会弹出window然后将form嵌入到window里面
具体代码如下:
columns:[
{header:"栏目编号",dataIndex:"lmbh",sortable:true},
{header:"链接编号",dataIndex:"ljbh",sortable:true},
{header:"链接名称",dataIndex:"ljmc"},
{header:"备注",dataIndex:"bz"},
{header:"查看BI",dataIndex:"lookBi"},
{header:"修改",dataIndex:"UpdateBi",renderer://当点击修改时弹出window
function(){return "修改";}
}]
[b]问题补充:[/b]
你的方法我想到了 但是因为test函数要执行window就必须放在EXT.ONReady()里面 这样的话这个window一开始就会弹出来 不会等到点击“修改”的时候再弹 你们遇到这种情况吗 是怎么解决的啊 谢谢啦
[b]问题补充:[/b]
问题来了 这样做可能不行 因为
{header:"修改",dataIndex:"UpdateBi",renderer://当点击修改时弹出window
function(){
return "修改";}
}
这样获取表了这一行的主键值啊!test()里面怎么接收ID值呢 哎
[b]问题补充:[/b]
那蔡 我就问你 你这个value是怎么得来的 他的值是谁的值?
[b]问题补充:[/b]
我认为大家给的参数不对 因为我是修改 我肯定是获取这条记录对应数据库段的ID 而不是这个EXT表格这个自己生产的ID 对吧 关键是对应数据库短的ID 怎么获取
[b]问题补充:[/b]
function(_value,_this,_data){var lmbh=_data.get("lmbh");return "修改";}
我这个lmbh怎么喘不过去啊 值都获取了的 就是传不过去 郁闷
[b]问题补充:[/b]
你这样也不行 老实语法错误 哎

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

8条回答 默认 最新

  • CaiHuajiang 2009-10-22 22:14
    已采纳

    [code="java"]function(_value,_this,_data){var lmbh=_data.get("lmbh");return "修改";} [/code]
    这个当然传不出去,因为生成DOM的时候,这个lmbh系统跟本找不到。要改为
    [code="java"]function(_value,_this,_data){var lmbh=_data.get("lmbh");return "修改";} [/code]
    这样子,才能把值传给DOM的

    点赞 评论
  • awol2005ex 2009-10-22 21:08

    改成这样就好了
    columns:[
    {header:"栏目编号",dataIndex:"lmbh",sortable:true},
    {header:"链接编号",dataIndex:"ljbh",sortable:true},
    {header:"链接名称",dataIndex:"ljmc"},
    {header:"备注",dataIndex:"bz"},
    {header:"查看BI",dataIndex:"lookBi"},
    {header:"修改",dataIndex:"UpdateBi",renderer://当点击修改时弹出window
    function(){
    return "修改";}
    }

    ]

    function test()
    {
    定义window
    }

    点赞 评论
  • CaiHuajiang 2009-10-22 21:16

    "修改"
    没用过这个。。。 :cry: :oops:
    修改
    [quote]
    你的方法我想到了 但是因为test函数要执行window就必须放在EXT.ONReady()里面 这样的话这个window一开始就会弹出来 不会等到点击“修改”的时候再弹 你们遇到这种情况吗 是怎么解决的啊 谢谢啦 [/quote]
    有你说的这个情况么?
    function test()要放在EXT.ONReady()的外面才行,里面应该拿不到的吧。。。

    点赞 评论
  • CaiHuajiang 2009-10-22 21:28

    要在renderer的function传参,给个示例
    [code="js"]{header : '条款名称',
    dataIndex : 'mc',
    width : 150,
    renderer : function(_value, _this, _data) {
    var value = _data.get("t");
    return "" + _value + "";
    }
    }[/code]

    要更详细的看renderer方法的api

    点赞 评论
  • 成尚謙 2009-10-22 21:31

    试试:
    [code="java"]
    ...
    function setIdCulomn(id,cellmeta,record,rowIndex,columnIndex,store){
    return '修改';
    }
    function editRow(id)
    {

    //var url = 'xxx.jsp';
    //window.open(url);
    //alert(id);
    new Ext.Window({id:'win',title:'修改窗口',width:600,height:480,html:'表单'}).show();
    }
    Ext.OnReady(function(){
    ...

    columns:[
    {header:"栏目编号",dataIndex:"lmbh",sortable:true},
    {header:"链接编号",dataIndex:"ljbh",sortable:true},
    {header:"链接名称",dataIndex:"ljmc"},
    {header:"备注",dataIndex:"bz"},
    {header:"查看BI",dataIndex:"lookBi"},
    {header:"修改",dataIndex:"UpdateBi",renderer:setIdCulomn}
    }]

    ...
    });
    ...[/code]

    点赞 评论
  • CaiHuajiang 2009-10-22 21:38

    晕,,你有没有看代码,又有没有看API。
    [code="java"]renderer : function(_value, _this, _data) {

    var value = _data.get("t");

    return "" + _value + "";

    } [/code]

    value的值都是由从_data中取的,_value是这行相对应的reader中对应的值
    _this不好意思忘了指什么,偶没用到。
    _data就是reader中的值啊。。。。
    你要去看看Ext.grid.ColumnModel中的renderer方法。

    点赞 评论
  • CaiHuajiang 2009-10-22 21:40

    [code="java"]columns:[
    {header:"栏目编号",dataIndex:"lmbh",sortable:true},
    {header:"链接编号",dataIndex:"ljbh",sortable:true},
    {header:"链接名称",dataIndex:"ljmc"},
    {header:"备注",dataIndex:"bz"},
    {header:"查看BI",dataIndex:"lookBi"},
    {header:"修改",dataIndex:"UpdateBi",renderer://当点击修改时弹出window
    function(_value,_this,_data){
    var lmbh = _data.get("lmbh");
    var ljbh = _data.get("ljbh");
    就这么简单.

    return "修改";}
    }][/code]

    点赞 评论
  • 成尚謙 2009-10-22 21:49

    [code="java"]...

    function setIdCulomn(id,cellmeta,record,rowIndex,columnIndex,store){

    return '修改';

    }

    function editRow(id)

    {

    //var url = 'xxx.jsp';

    //window.open(url);

    //alert(id);

    new Ext.Window({id:'win',title:'修改窗口',width:600,height:480,html:'表单'}).show();

    }

    Ext.OnReady(function(){

    ...

    columns:[

    {header:"栏目编号",dataIndex:"lmbh",sortable:true},

    {header:"链接编号",dataIndex:"ljbh",sortable:true},

    {header:"链接名称",dataIndex:"ljmc"},

    {header:"备注",dataIndex:"bz"},

    {header:"查看BI",dataIndex:"lookBi"},

    {header:"修改",dataIndex:"UpdateBi",renderer:setIdCulomn}

    }]

    ...

    });

    ... [/code]

    setIdCulomn方法中的参数id就是你UpdateBi的值,id只是一个参数名,你定义时可以写成其它名字,record对应的就是你这行的数据,比如record.data.UpdateBi就是id的值了,还可以record.data.bz这样来取得该行的备注列的值,其他的列都是一样

    点赞 评论

相关推荐 更多相似问题