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

如是我闻1013 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){
........
}
***/
}
...全文
7298 点赞 收藏 12
写回复
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就是该行的所有值,不需要通过获取行号来取。
回复 点赞
tong536 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里面的显示的那个字段依次取出来。。
回复 点赞
如是我闻1013 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很重要,还要继续研究.多多向你请教.
回复 点赞
如是我闻1013 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;
用这个试试,我项目里用的事这个
回复 点赞
如是我闻1013 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){ ........ }
回复 点赞
发动态
发帖子
JavaScript
创建于2007-09-28

5.1w+

社区成员

22.3w+

社区内容

Web 开发 JavaScript
社区公告
暂无公告