请教关于jQuery EasyUI的DataGrid 数据行上右键问题

如是我闻2012 2013-03-01 12:20:49
如下图:

我想查看单行数据(如ID为20)的右键上获取该行的值,代码:

<script type="text/javascript">
$(function(){
$('#test').datagrid({
title:'DataGrid数据列表',
iconCls:'icon-grid',
fit:true,
collapsible:true,
closable:true,
nowrap: false,
animate:true,
url: '<%=rootPath%>data/getJobs',
idField:'id',
pagination: true,
pageSize:20,
pageList: [10,20,30,40,50,100],
onRowContextMenu: onRowContextMenu, //右键。[表头(tab)右键onHeaderContextMenu,树形(tree)右键onContextMenu]
rownumbers: true,
singleSelect: true,
columns:[[
{title:'',field:'ck',width:120,checkbox:true},
{field:'id',title:'岗位ID',width:80},
{field:'job_name',title:'岗位名称',width:80},
{field:'dat',title:'入职日期',width:80,align:'right'},
{field:'work_address',title:'工作地点',width:80},
{field:'salary',title:'薪资',width:80,align:'right'},
{field:'status',title:'状态',width:60},
]],
onLoadSuccess: function() {
delete $(this).datagrid('options').queryParams['id'];
}

});
});
</script>


右键菜单:

<div id="mm" class="easyui-menu" style="width:120px;">
<div onClick="view()" data-options="iconCls:'icon-search'">查看</div>
<div onClick="add()" data-options="iconCls:'icon-add'">新增</div>
<div onClick="edit()" data-options="iconCls:'icon-edit'">编辑</div>
<div onClick="del()" data-options="iconCls:'icon-remove'">删除</div>
<div class="menu-sep"></div>
<div onClick="print()" data-options="iconCls:'icon-print'">打印</div>
<div onClick="reload()" data-options="iconCls:'icon-reload'">刷新</div>
</div>


javascript:

//添加右击菜单内容
function onRowContextMenu(e, rowIndex, rowData){
e.preventDefault();
var selected=$("#test").datagrid('getRows'); //获取所有行集合对象
selected[rowIndex].id; //index为当前右键行的索引,指向当前行对象
$('#mm').menu('show', {
left:e.pageX,
top:e.pageY
});
}
//查看详细
function view(){
/***
就是这里获取单行数据方法????
treeGrid上倒是很好实现:
var node = $('#datagrid').treegrid('getSelected');
if(node){
........
}
***/
}
...全文
7505 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
Winnid 2014-09-13
  • 打赏
  • 举报
回复
需要加入 js 才能触发右键菜单弹出,包括 frame 框架中的页面 有的需要再次引入 <script type="text/javascript" src="easyui/jquery.easyui.min.js"></script> <script type="text/javascript" src="easyui/locale/easyui-lang-zh_CN.js"></script>
xuhangshuo 2014-06-27
  • 打赏
  • 举报
回复
如何获取右键的这个列 field
为了诗诗 2013-12-19
  • 打赏
  • 举报
回复
onRowContextMenu(e, rowIndex, rowData) 这个函数中的rowData就是该行的所有值,不需要通过获取行号来取。
tong'tong 2013-09-22
  • 打赏
  • 举报
回复
引用 8 楼 bjl373842798 的回复:
为毛我的就不能点右键,火狐或者IE上都不行 easyui 1.3.3
我的也是,没效果
uFreeWo 2013-09-04
  • 打赏
  • 举报
回复
为毛我的就不能点右键,火狐或者IE上都不行 easyui 1.3.3
cg1102087737 2013-08-19
  • 打赏
  • 举报
回复
很实用,正在学习
fugui_123456 2013-04-23
  • 打赏
  • 举报
回复
请问 datagrid在获取到行记录的时候 如果我要得到行里面的各个字段的值 怎么操作。。我晓得的有一个 直接 XX.字段名可以 。。但是是否存在取值的顺序问题 ?????是否一定的按照datagrid里面的显示的那个字段依次取出来。。
如是我闻2012 2013-03-01
  • 打赏
  • 举报
回复
再次谢谢ThinkRicher! 我已解决了,把onRowContextMenu修改为以下:

//添加右击菜单内容
function onRowContextMenu(e, rowIndex, rowData){
    e.preventDefault();
    var selected=$("#test").datagrid('getRows'); //获取所有行集合对象
     var idValue = selected[rowIndex].id;
     $(this).datagrid('selectRecord', idValue);  //通过获取到的id的值做参数选中一行
    $('#mm').menu('show', {
        left:e.pageX,
        top:e.pageY
    });		
}
: easyui的api很重要,还要继续研究.多多向你请教.
如是我闻2012 2013-03-01
  • 打赏
  • 举报
回复
引用 3 楼 ThinkRicher 的回复:
XML/HTML code?12345678910var datarow = $('#grid').datagrid('getSelections'); if (datarow == null || datarow.length <= 0) { showmsg("请选择要编……
谢谢ThinkRicher! 但还有个问题,我先要鼠标左键点击该行checkbox选中后,再右键才能获取到值,也就是右键无法选中checkbox. 那么要怎样才能像treegrid那样直接右键就能选中checkbox再获取值,我的datagrid还需要什么参数?
空格键 2013-03-01
  • 打赏
  • 举报
回复
var datarow = $('#grid').datagrid('getSelections');
                        if (datarow == null || datarow.length <= 0) {
                            showmsg("请选择要编辑的记录!");
                            return;
                        }
                        if (datarow.length > 1) {
                            showmsg("只能对一条记录进行编辑!");
                            return;
                        }
                        var url = '/ContentInfo/Editor/' + datarow[0].PID;
用这个试试,我项目里用的事这个
如是我闻2012 2013-03-01
  • 打赏
  • 举报
回复
引用 1 楼 ThinkRicher 的回复:
treegrid 扩展于 datagrid var node = $('#datagrid').datagrid('getSelected'); if(node){ ........ }
不行啊,alert(node)显示为null,但在treegrid下能取到对象。
空格键 2013-03-01
  • 打赏
  • 举报
回复
treegrid 扩展于 datagrid var node = $('#datagrid').datagrid('getSelected'); if(node){ ........ }
内容概要:本文档是一份关于交换路由配置的学习笔记,系统地介绍了网络设备的远程管理、交换机与路由器的核心配置技术。内容涵盖Telnet、SSH、Console三种远程控制方式的配置方法;详细讲解了VLAN划分原理及Access、Trunk、Hybrid端口的工作机制,以及端口镜像、端口汇聚、端口隔离等交换技术;深入解析了STP、MSTP、RSTP生成树协议的作用与配置步骤;在路由部分,涵盖了IP地址配置、DHCP服务部署(接口池与全局池)、NAT转换(静态与动态)、静态路由、RIP与OSPF动态路由协议的配置,并介绍了策略路由和ACL访问控制列表的应用;最后简要说明了华为防火墙的安全区域划分与基本安全策略配置。; 适合人群:具备一定网络基础知识,从事网络工程、运维或相关技术岗位1-3年的技术人员,以及准备参加HCIA/CCNA等认证考试的学习者。; 使用场景及目标:①掌握企业网络中常见的交换与路由配置技能,提升实际操作能力;②理解VLAN、STP、OSPF、NAT、ACL等核心技术原理并能独立完成中小型网络搭建与调试;③通过命令示例熟悉华为设备CLI配置逻辑,为项目实施和故障排查提供参考。; 阅读建议:此笔记以实用配置为主,建议结合模拟器(如eNSP或Packet Tracer)动手实践每一条命令,对照拓扑理解数据流向,重点关注VLAN间通信、路由选择机制、安全策略控制等关键环节,并注意不同设备型号间的命令差异。

87,996

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧