var createGridRowContextMenu = function(e, rowIndex, rowData) {
e.preventDefault();
var grid = $(this);/* grid本身 */
var rowContextMenu = this.rowContextMenu;/* grid上的列头菜单对象 */
grid.datagrid('unselectAll').datagrid('selectRow', rowIndex);
if (!rowContextMenu) {
var tmenu = $('').appendTo('body');
var toolbar = grid.datagrid('getToolbar');
var filedHTML = $('');
var span = $('翻页控制');
var spdiv = $('');
for ( var i = 0; i < toolbar.length; i++) {
var btn = $(toolbar[i]).linkbutton('options');
var btnElement = $(toolbar[i]).linkbutton();
var c = $(btnElement).attr("onclick");
$("").html(btn.text).appendTo(tmenu);
//$('').html(btn.text).appendTo(tmenu);
}
spdiv.append('首页');
spdiv.append('上一页');
spdiv.append('下一页');
spdiv.append('末页');
span.appendTo(filedHTML);
spdiv.appendTo(filedHTML);
filedHTML.appendTo(tmenu);
rowContextMenu = this.rowContextMenu = tmenu.menu({
onClick : function(item) {
var fire = $(item.target).attr('fire');
if(fire){
new Function(fire)(); //eval(fire); eval 也是可行的;
}
var pager = grid.datagrid('getPager').pagination('options'); //拿到pager
var pagination = $(item.target).attr('iconCls');
var pageNum = 0
var page = pager.total / pager.pageSize; //总行书 / 每页显示行数 = 总页数
page = Math.ceil(page)
if(pagination == 'pagination-first'){
pageNum = 1;
}
if(pagination == 'pagination-prev'){
pageNum = pager.pageNumber - 1;
}
if(pagination == 'pagination-next'){
pageNum = pager.pageNumber + 1;
}
if(pagination == 'pagination-last'){
pageNum = page;
}
grid.datagrid('getPager').pagination('select',pageNum);
}
});
}else{

}
rowContextMenu.menu('show', {
left : e.pageX,
top : e.pageY
});
var pager = grid.datagrid('getPager').pagination('options'); //拿到pager
var itemFirst = rowContextMenu.menu('findItem','首页');
var itemPrev = rowContextMenu.menu('findItem','上一页');
var itemNext = rowContextMenu.menu('findItem','下一页');
var itemLast = rowContextMenu.menu('findItem','末页');
rowContextMenu.menu('disableItem',itemFirst.target);
rowContextMenu.menu('disableItem',itemPrev.target);
rowContextMenu.menu('disableItem',itemNext.target);
rowContextMenu.menu('disableItem',itemLast.target);
var page = pager.total / pager.pageSize; //总行书 / 每页显示行数 = 总页数
//if(page < 1){ //如果页数小于0
//那么页数 = 1 page = 1;
//}
page = Math.ceil(page)
if(page < 1)
page=page+1;
if(1 < pager.pageNumber && pager.pageNumber < page){
rowContextMenu.menu('enableItem',itemFirst.target);
rowContextMenu.menu('enableItem',itemPrev.target);
rowContextMenu.menu('enableItem',itemNext.target);
rowContextMenu.menu('enableItem',itemLast.target);
}
if(page == pager.pageNumber && pager.pageNumber != 1){
rowContextMenu.menu('enableItem',itemFirst.target);
rowContextMenu.menu('enableItem',itemPrev.target);
}
if(pager.pageNumber == 1 && page != 1){
rowContextMenu.menu('enableItem',itemNext.target);
rowContextMenu.menu('enableItem',itemLast.target);
}
};
$.fn.datagrid.defaults.onRowContextMenu = createGridRowContextMenu;
$.fn.treegrid.defaults.onRowContextMenu = createGridRowContextMenu;

easyui datagrid 行右键生成 动态获取(toolbar) 按钮的更多相关文章

  1. easyui datagrid行合并

    easyui datagrid行合并 合并方法 /** * EasyUI DataGrid根据字段动态合并单元格 * 参数 tableID 要合并table的id * 参数 colList 要合并的列 ...

  2. Easyui datagrid行内【添加】、【编辑】、【上移】、【下移】

    前几天项目中遇到一个需求用到了Easyui datagrd行内添加和编辑数据,同时对行内数据上移下移,所以对这几个功能做个总结. 1.首先大概说下这几个功能里用到的主要方法,行内添加数据主要是添加列的 ...

  3. 关于EasyUI DataGrid行编辑时嵌入时间控件

    本人做一个名为“安徽中控”项目时,为快速开发基础数据增删改模块,遂采用EasyUIDatagrid将所有增删改查的操作都集中于表格中,并且所有增删改查操作都集中于泛型对象,从而不必为每个表写具体的增删 ...

  4. ASP.NET MVC5+EF6+EasyUI 后台管理系统(83)-Easyui Datagrid 行内编辑扩展

    这次我们要从复杂的交互入手来说明一些用法,这才能让系统做出更加复杂的业务,上一节讲述了Datagird的批量编辑和提交本节主要演示扩展Datagrid行内编辑的属性,下面来看一个例子,我开启编辑行的时 ...

  5. easyui datagrid行编辑中数据联动

    easyui的datagrid中行内编辑使用数据联动.即:当编辑产品编号时,该行的产品名称自动根据产品编号显示出来. 在编辑中获取当前行的索引 function getRowIndex(target) ...

  6. easyui datagrid行中点击a标签链接,行被选中,但是获取不到对应的参数

    easyui中使用比较多的就是datagrid了,表格中添加连接,点击跳转,为比较常用的方式;往往在点及标签后调用getSeleted方法会失效; 一.初始代码: {field: 'id',title ...

  7. EasyUI datagrid添加右键菜单项

    js代码 //动态加载数据表格 function InitData() { $('#grid').datagrid({ url: '/Home/Query?r=' + Math.random(), / ...

  8. easyui datagrid combobox下拉框获取数据问题

    最近在使用easyui的datagrid,在可编辑表格中添加一个下拉框,查了下API,可以设置type : 'combobox',来做下拉框,这下拉框是有了,可是这后台数据怎么传过来呢,通过查API可 ...

  9. 【项目经验】--EasyUI DataGrid之右键菜单

    前两天验收项目,老总提了一个不是需求的需求,为什么这么说呢?因为我们的管理不到位!话说当天,我们UI系统下发了一个总文件,上面写着"各个系统找一个没有添加UI的模块去添加最新版本UI进行测试 ...

随机推荐

  1. 浅谈Service

    一.生命周期: startService()方式启动,Service是通过接受Intent并且会经历onCreate()和onStart().当用户在发出意图使之销毁时会经历onDestroy():( ...

  2. 关于c++风格 code style

    Header files should be self-contained. All header files should have #define guards to prevent multip ...

  3. 论MySQL的监控和调优

    懂PHP的人一般都懂MySQL这一点不假,大多数书籍里也是这样,书中前面讲PHP后面到数据库这块就会讲到MySQL的一些知识,前几年MySQL一直是PHP书籍的一部分,后来开始从国外翻译了一些专门讲述 ...

  4. Java 创建过滤器 解析xml文件

    今天写了一个过滤器demo,现在是解析actions.xml文件,得到action中的业务规则:不需要导入任何jar包 ActionFilter过滤器类: package accp.com.xh.ut ...

  5. mac地址、IP地址和端口号

    看了很多遍,才整理出来我对整个通信过程的理解,大致如下,后期会不断学习补充更正: 在利用TCP/IP协议族进行通信的时候,有三个比较关键的确认身份的信息:mac地址.IP地址和端口号. mac地址是在 ...

  6. iOS:搭建本地的服务器

    一.介绍 作为一个专业的程序员,不管你是前端还是移动端或者是后台,能够自己试着搭建一个本地的服务器还是很有必要的,有的时候,我们可以自己测试一些数据,很方便开发.其实,mac是自带有本地的服务器的,用 ...

  7. js的实参是按值传递还是按引用传递

    1.如果是基本类型,则是按值传递 var str = 'one';function f(string) {    string = 'two';}f(str);console.log(str); // ...

  8. IAP的几个问题

    IAP是(In-APP Purchase),苹果商店内购.先来看看它的流程:   而实际运营过程中,经常会遇到这二个问题: 只要应用玩的人比较多,基本上都会遇到过此类问题,下面是来自搜索引擎的结果: ...

  9. C#.NET序列化XML、JSON、二进制微软自带DLL与newtonsoft(json.net)

    序列化是将对象转换成另一种格式(XML.json.二进制byte[]) JSON序列化 .NET中有三种常用的JSON序列化的类,分别是: Newtonsoft.Json.JsonConvert类(推 ...

  10. insert table 和create table as 区别

    首先,最大的区别是二者属于不同类型的语句,前者是DML语句(数据操作语言,SQL中处理数据等操作统称为数据操纵语言),完成后需要提交才能生效,后者是DDL语句(数据定义语言,用于定义和管理 SQL 数 ...