精华帖 (0) :: 良好帖 (1) :: 新手帖 (8) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2009-07-09
最后修改:2009-07-27
导言:
var cm=new Ext.grid.ColumnModel([ sm, rowNum, {header: "姓名", dataIndex:'name',width: 100, sortable: true}, {header: "年龄", dataIndex:'age',width: 50, sortable: true}, {header: "工作", dataIndex:'work',width: 150, sortable: true}, {header: "公司", dataIndex:'company',width: 100, sortable: true}, {header: "所属行业", dataIndex:'industry',width: 80, sortable: true}, {header: "群", dataIndex:'QQ',width:150, sortable: true}, {header: "操作", dataIndex:'id',width:150, sortable: true,renderer:function(value,meta,record){ var resultStr = "<div class='controlBtn'>" + "<a href='javascript:void("+record.get('id')+");' class='alarm_detail'>详细</a> & nbsp;" + "<a href='javascript:void("+record.get('id')+");' class='alarm_detail'>删除</a> & nbsp;" + "<a href='javascript:void("+record.get('id')+");' class='alarm_detail'>图表</a> & nbsp;" + "<a href='javascript:void("+record.get('id')+");' class='alarm_detail'>曲线</a> & nbsp;" + "</div>"; return resultStr; } } ]);
这个写法的优点是:代码比较优雅,不显乱; /** * 点击操作:注意这个地方的作用域问题,因为<a href="#" onclick="dleUser()"> * 这里的onclick作用域是window */ window.delUser=function(userName){ alert("开始删除"+userName); } /** * 渲染器 */ var opeartionRender=function(userName){ return '<a href="#" onclick="delUser('+userName+')">删除</a>'; } /** * 数据列模型 */ var cm=new Ext.grid.ColumnModel([ sm, rowNum, {header: "姓名", dataIndex:'name',width: 100, sortable: true}, {header: "年龄", dataIndex:'age',width: 50, sortable: true}, {header: "工作", dataIndex:'work',width: 150, sortable: true}, {header: "公司", dataIndex:'company',width: 100, sortable: true}, {header: "所属行业", dataIndex:'industry',width: 80, sortable: true}, {header: "群", dataIndex:'QQ',width:150, sortable: true}, {header: "操作", dataIndex:'name',width:150, sortable: true,renderer:opeartionRender} ]);
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2009-07-16
缺点是:这里面有个作用域的问题。因为做成链接这种形式,事件不是用Ext的实现来绑定的,而实际上使用了原生的事件,所以在点击之后的处理上稍微麻烦。
-- 这个缺点是不存在的... 实际上你里面是可以任意的标签,不一定是<a>, 这个标签只是为了在后面的事件处理里面找到对应的元素. 上次我给你看的这个,应该解释清楚了吧? http://atian25.iteye.com/blog/414248 看5.4的方法1 |
|
返回顶楼 | |
发表时间:2009-10-19
使用渲染器renderer就够了,关于这个问题
引用 缺点是:这里面有个作用域的问题。因为做成链接这种形式,事件不是用Ext的实现来绑定的,而实际上使用了原生的事件,所以在点击之后的处理上稍微麻烦。 你可以监控girdpanel的store的load时间,然后对操作列进行遍历然后对该元素进行事件监控: 1. /** 2. * 点击操作:注意这个地方的作用域问题,因为<a href="#" onclick="dleUser()"> 3. * 这里的onclick作用域是window 4. */ 5. window.delUser=function(userName){ 6. alert("开始删除"+userName); 7. } 8. 9. /** 10. * 渲染器 11. */ 12. var opeartionRender=function(userName){ 13. return '<a href="#" class="[color=red]demoClass[/color]" onclick="delUser('+userName+')">删除</a>'; 14. } 15. 16. /** 17. * 数据列模型 18. */ 19. var cm=new Ext.grid.ColumnModel([ 20. sm, 21. rowNum, 22. {header: "姓名", dataIndex:'name',width: 100, sortable: true}, 23. {header: "年龄", dataIndex:'age',width: 50, sortable: true}, 24. {header: "工作", dataIndex:'work',width: 150, sortable: true}, 25. {header: "公司", dataIndex:'company',width: 100, sortable: true}, 26. {header: "所属行业", dataIndex:'industry',width: 80, sortable: true}, 27. {header: "群", dataIndex:'QQ',width:150, sortable: true}, 28. {header: "操作", dataIndex:'name',width:150, sortable: true,renderer:opeartionRender} 29. ]); store.on('load',function(parmas){ Ext.select('a.demoClass').each(function(index,el){ el.on('click',function(e){ //your code like "window.delUser()" }); }); }); |
|
返回顶楼 | |
浏览 2499 次