如何给dhtmlxgrid加弹出窗口

在实际的项目开发中我们经常会遇到这样的问题,一个列表页面呈现的内容可能是多个表联合查询的结果,如果我们要更改某个cell当中的值,他可能会涉及到其它多个表内容的修改,如何解决这样的问题?我的思路是使用弹出窗口,在弹出窗口中让用户执行数据的修改操作,然后再把修改后的值返回到cell更新cell的内容,但是dhtmlxgrid当中我还没有发现有弹出窗口的这项功能,没办法只好自己扩展,看例子,首先我要增加一种xcell的类型oWin

 在dhtmlXGridCell.js文件中添加如下代码

js 代码
  1. /****************/  
  2.   
  3.   
  4. function eXcell_oWin(cell)   
  5. {   
  6.     var cellVal="";   
  7. try  
  8.     {   
  9. this.cell = cell;   
  10.  this.grid = this.cell.parentNode.grid;   
  11.  }catch(er){}   
  12.   
  13.  this.edit = function(){   
  14.     this.val = this.cell.val;   
  15.     eval(this.val.split("^")[1]);   
  16.     this.cell._cediton=true;   
  17.  }   
  18.  this.getValue = function(){   
  19. }   
  20.   
  21.   
  22.  this.setValue = function(val){   
  23.  var valsAr = val.split("^");   
  24.  if(valsAr.length==1)   
  25.  valsAr[0] = "";   
  26.  this.cell.innerHTML=valsAr[0];   
  27.  this.cell.val=val;   
  28.   
  29. }   
  30.   
  31. }   
  32.   
  33. eXcell_oWin.prototype = new eXcell;  

然后在grid.xml的定义如下

xml 代码

 

xml 代码
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <rows>  
  3.     <row id="1">  
  4.         <cell>1</cell>  
  5.         <cell>John Grisham^modUserName('John Grisham')</cell>  
  6.            
  7.     </row>  
  8.     <row id="2">  
  9.         <cell>2</cell>  
  10.         <cell>Stephen King^modUserName('Stephen King')</cell>  
  11.            
  12.     </row>  
  13.        
  14.        
  15. </rows>  

 大家注意第二个cell的内容是由两部分组成,前面是cell显示的内容,后面是双击调用的函数modUserName,他们之间用^分开

然后在oWin.html中添加如下代码:
function modUserName(val1)
{//这个函数就是我们在xml中需要调用的,这段代码中我是定义了弹出窗口程序,当然你也可以写成div的。

window.open("win.html", "smallwin","width=400,height=350");

}

同时也要注意mygrid的定义代码更改成mygrid.setColTypes("ro,oWin");

此时浏览oWin.html,双击第二列cell,弹出窗口,在弹出窗口的文本框中输入文字,点击提交,datagrid中相应的cell的值更新了,具体请看附件的例子。

DhtmlxTree-dhtmlxmenu实现在节点上右键弹出菜单 对dhtmlXTree进行一个小的扩展 需求1: 动态生成树形菜单,每个节点都有各自的URL地址,单击不同的节点框架页的右侧跳转到该节点所对应的URL。(框架页说明:左边是树形菜单;右边是显示页面相应信息的页面) 分析: dhtmlXTree提供了很好的添加,删除节点的方法,故选择dhtmlXTree。 但是dhtmlXTree不能满足"每个节点都有各自的URL地址,单击不同的节点框架页的右侧跳转到该节点所对应的URL"这点需求,因次想到了对dhtmlXTree进行一个小的扩展,即在其节点对象原有属性的基础上,再添加两个扩展属性。具体操作如下: 1、找到定义节点对象的那个函数(或方法) function dhtmlXTreeItemObject(itemId,itemText,parentObject,treeObject,actionHandler,mode) 修改为 function dhtmlXTreeItemObject(itemId,itemText,parentObject,treeObject,actionHandler,mode,url,target) 并在方法体中添加赋值语句:this.itemURL=url;this.itemTarget=target; 2、然后修改所有与dhtmlXTreeItemObject有关(直接或者间接相关)的方法: _attachChildNode,insertNewItem,insertNewChild,insertNewNext,_recreateBranch,_parseXMLTree 注:_parseXMLTree方法是与loadXML,loadXMLString相关的。 在这些方法中生成节点的语句中添加相应的参数和语句,以支持新添加的属性itemURL,itemTarget。 需求2: 为dhtmlXTree树上的每一个节点添加右键菜单。附:在树上的节点上点右键时才会生成菜单,空白区域单击时不会生成菜单。 分析: 1、用 dhtmlXTree + dhtmlxmenu 实现。 2、 用dhtmlxmenu生成菜单的部分代码: var menu = new dhtmlXMenuObject(); menu.setImagePath("imgs/"); menu.setIconsPath("images/"); menu.renderAsContextMenu(); menu.loadXML("dhtmlxmenu.xml?e="+new Date().getTime()); menu.addContextZone("treeboxbox_tree"); menu.addContextZone方法是为了把菜单添加到指定区域。 3、dhtmlXTreeObject.prototype._createItem方法是构造树形菜单上元素的具体实现方法。看这个方法的具体操作,可以发现它为每一个节点构建了一个table,节点的内容(即名字)放置在一个span中。 4、考虑到dhtmlxmenu实在指定的区域构建菜单,所以可以为dhtmlXTree树上的每一个节点添加右键事件,在这个右键事件里获得该节点对象所对应的区域,然后在这个区域内构建Menu菜单。 难点和解决方案: 1、怎样获得dhtmlXTree树上的每一个节点对象所对应的区域?(dhtmlXTreeObject.prototype._createItem方法没有为这个节点的span设置id) 解决方法: 在dhtmlXTreeObject.prototype._createItem方法中添加一个为span设置id的语句: 即: 在itemObject.span=document.createElement('span'); itemObject.span.className="standartTreeRow"; 后,新添加一句 itemObject.span.id="treeNode_"+itemObject.id;//为这个span新增一个Id属性 2、为dhtmlXTree树上的每一个节点添加右键事件,在这个右键事件里获得该节点对象所对应的区域,然后在这个区域内构建Menu菜单。 解决方法: a、为dhtmlXTree树上的每一个节点添加右键事件: tree.setOnRightClickHandler(treeOnRegihtClick);//右键事件 b、构建Menu菜单: var menu = new dhtmlXMenuObject(); function treeOnRegihtClick(id){ alert("右键 "+" span.id:"+tree.getItem(id).span.id); menu.setImagePath("imgs/"); menu.setIconsPath("images/"); menu.renderAsContextMenu(); menu.loadXML("dhtmlxmenu.xml?e="+new Date().getTime()); menu.addContextZone(tree.getItem(id).span.id);alert("width:"+tree.getItem(id).span.clientWidth); //var X=tree.getItem(id).span.getBoundingClientRect().left; //var Y=tree.getItem(id).span.getBoundingClientRect().top; var X=document.getElementById('mouseXPosition').value;//获得鼠标的横坐标位置 var Y=document.getElementById('mouseYPosition').value;//获得鼠标的纵坐标位置 menu.showContextMenu(X,Y);//调用showContextMenu方法显示菜单 说明:如果这儿不加上这条语句的话,第一次点击右键时只能生成菜单,但是显示不出菜单,下次点击右键Menu菜单才能弹出。 //menu._showContextMenu(X,Y,tree.getItem(id).span.id); } c、用 javascript 获取当页面上鼠标(光标)位置 <script type="text/javascript"> // 说明:获取鼠标位置 function mousePosition(ev){ if(ev.pageX || ev.pageY){ return {x:ev.pageX, y:ev.pageY}; } return { x:ev.clientX + document.body.scrollLeft - document.body.clientLeft, y:ev.clientY + document.body.scrollTop - document.body.clientTop }; } document.onmousemove = mouseMove; function mouseMove(ev){ ev = ev || window.event; var mousePos = mousePosition(ev); document.getElementById('mouseXPosition').value = mousePos.x; document.getElementById('mouseYPosition').value = mousePos.y; } </script> 页面上放置两个隐藏域存放鼠标的位置:<input type="hidden" id=mouseXPosition><input type="hidden" id=mouseYPosition> 立即下载

相关推荐

dhtmlxgrid自定义CELL编辑事件

dhtmlxgrid自定义CELL编辑事件

DHTMLX做一个Grid列表显示数据

准备数据 data.xml Grid的数据从这里读取 380 90 100 90 100 400 90 110 100 100 385 90

hello world! 1463

Flexible H-Tree(灵活 H 树)与 Multi-Tap 时钟流程解析

通过灵活 H 树与多抽头技术的结合,复杂时钟架构可在保持电气对称性的同时适应不规则布局,为高性能、低功耗 SoC 设计提供高效的时钟网络解决方案。

weixin_45371279的博客 1911

toast弹窗_一个弹窗的设计思考

这几天在工作中处理了一个历史遗留问题:弹窗适配,几经折腾终于落定发包。于是我也趁着这个机会把弹窗体系梳理研究了一遍。我们常见的弹窗有对话框,提示框,有时候在需求沟通中经常会听到产品同学说,给这里加个弹窗,那里加个提示框吧。实际上,这个弹窗到底该不该加?这个弹窗承载的是提示说明文字内容,还是需要引导用户下一步操作?接下来我们从弹窗的属性来聊聊我们的弹窗到底在什么时候加比较合适?用什么形态展示体验会更...

weixin_39726044的博客 568

【自动驾驶】控制算法(十)深度解析车辆纵向控制 | Carsim 油门刹车标定表的制作...

写在前面: ???? 欢迎光临 清流君 的博客小天地,这里是我分享技术与心得的温馨角落。???? ???? 人生如戏,我们并非能选择舞台和剧本,但我们可以选择如何演绎 ????感谢您的支持与关注,让我们一起在知识的海洋中砥砺前行~~~文章目录引言一、油门标定原理1.1 油门与速度、加速度的关系1.2 油门控制曲面模型的构建二、油门标定表的制作流程...

qq_35485206的博客 2139

Sentinel2 哨兵2数据下载方法(USGS)-史上最全讲解

本文讲述了从USGS官网下载Sentinel2的方法。主要包括USGS官网的注册和下载流程,以及选定研究区中所出现的问题、解决办法。

xiatiandexia123的博客 6万+

DhtmlGantt案例-弹窗lightbox自定义字段

<!DOCTYPE html> <html lang="zh"> <head> <meta http-equiv="Content-type" content="text/html; charset=utf-8"> <title>案例--有些引用的文件是自己内部用的,可自行删除</title> &lt...

beinlife的博客 3774

ChatGPT设置密钥后Codex免手机验证:配置顺序与身份凭证复用机制

API Key 是一种用于身份识别的凭证,其核心原理是通过预配置的密钥替代交互式登录流程。在开发工具中,密钥认证优先级通常高于会话认证,当本地存在有效密钥时,工具会直接复用该凭证,从而减少重复验证环节。这种机制的技术价值在于提升开发效率与配置一致性,尤其适用于多设备切换、CI/CD 流水线及编程辅助工具等场景。以 Codex 为例,在 ChatGPT 界面提前配置 API 密钥后,Codex 启动时可读取持久化存储的密钥,避免触发手机号验证,实现身份凭证的跨入口复用。

weixin_33940469的博客 461

dhtmlxgantt的弹窗时间范围_WPF MVVM 模式下的弹窗

WPFMVVM模式下的弹窗独立观察员 2020 年 7 月 15 日一、总体展示首先看看用户控件在设计页面的大致效果:中间部分自然就是确认弹框了,由标题、内容、确认按钮、取消按钮、倒计时、关闭按钮组成,指定了大小范围:外层还有个 Grid,没有指定大小,所以使用时会铺满容器,再配上带透明度的背景色,可以当作蒙版,避免用户继续操作后面的界面,达到模态弹窗的效果:确认弹框,手动关闭、点击...

weixin_39683769的博客 588

uniapp [安卓苹果App端] - 解决支付宝支付报错requestPayment:fail [payment支付宝:62009]未知错误,使用uni.requestPayment支付报错排查方案

uni-app支付宝,uniapp支付宝沙箱支付报错,uni.requestPayment,uniAPP App支付宝支付提示错误requestPayment:fail [payment支付宝:62009]未知错误,UNI-APP支付宝报错"code": -100,uniapp 解决安卓App使用uni.requestPayment实现沙箱环境支付宝支付报错,uniapp安卓app使用支付宝的沙箱环境支付时报了这个错,安卓端app支付宝支付,在沙箱测试环境测支付,提示“商家订单参数异常,请重新发起付款,选择

🏆 前端领域优质创作者 9609

使用R语言整理GEO数据的简易教程

本教程介绍了使用R语言从GEO数据库下载数据并进行数据整理的基本步骤。根据实际研究问题,你可能需要进行更复杂的数据处理和分析。R语言作为一种强大的生物信息学工具,为GEO数据的整理、分析和可视化提供了丰富的功能和工具。希望这个教程能够帮助你入门GEO数据整理和R语言的应用。如果你在使用过程中遇到问题,或需要进一步的指导,请随时向我询问。祝你在GEO数据分析的旅程中取得成功!

Mrrunsen的博客 3740

dhtmlxgrid cell采用 模态窗口输入数据

附件 eXcell_popWin.rar 是定义的 eXcell_popWin 附件 dhtmlxgrid-ModalWinDialog.rar 是整个例子的文件 参考 http://www.iteye.com/topic/73776 如何给dhtmlxgrid加弹出窗口 http://www.iteye.com/topic/320483 扩展eXcell 实现多个超级链接 ...

wdzwdz 204

【经验&技巧】如何在ADS中导入示波器的时域波形?

从示波器中导出的时域波形数据,需要按照固定的格式进行修改,并通过Display dataset对话框导入ADS。

一只豌豆象的博客 1571

怎么把DHTMLX的ToolBar里的input变成下拉选项框的

愚蠢的我没有在API里找到配置下拉框的方法,只看到了input的,愚蠢的我是怎么把DHTMLX的ToolBar里的input变成下拉选项框的呢? 页面上加一个放工具栏的div<div id="toolBar" type="width:100%"></div>js中创建toolBar,并添加输入框var myToolBar=new dhtmlXToolbarObject("toolBar");

左北右西 2376

22、狭义相对论与曲线坐标空间相关知识解析

本文深入解析了狭义相对论与曲线坐标空间的核心概念,涵盖能量-动量张量的定义与守恒、曲线坐标系下的度量张量与基向量性质、协变与逆变张量的变换规则,并介绍了克里斯托费尔符号与协变导数的计算方法。进一步探讨了在弯曲空间中进行微积分运算的基础理论及其在广义相对论中的关键应用,如爱因斯坦场方程如何描述物质-能量对时空曲率的影响,为理解黑洞等引力现象提供了理论框架。

lambda的博客 115

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

弹出窗口总结

使用了很多的主窗口中弹出的新的窗口,觉得很有必要研究一下,故就有了这篇文章。希望自己得到很大的提升。   首先,是正常的弹出一层窗口,没有和主窗口有交互的动作。此类问题比较简单。 比如: jQuery(function(){ jQuery("#preview").click(function(){ window.open("/admin-qu

展翅腾飞 3694

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

dhtmlx.confirm 不执行

if("true" == myData){             dhtmlx.confirm({ type:"confirm-warning", text:"任务已下发", ok:"确认", cancel:"返回"             });             w1.close();             document.location.reloa

banlifeather的专栏 947

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

6、Gantt 消息弹窗部分 lightbox

双击task时,弹出lightbox弹出框 https://docs.dhtmlx.com/gantt/api__gantt_details_on_dblclick_config.html gantt.config.details_on_dblclick = true; // task双击 当用户双击任务时触发 该事件是可阻止的。返回 false 将取消默认处理程序 gantt.attachEvent('onTaskDblClick', function (id, e) { console.log(.

beauty_600的博客 1383

Dhtmlx Gantt如何LightBox自定义表单元素

首先先起一个基本Dhtmlx Gantt的基本项目。以下代码可做参考。 以上是基本dhtmlx gantt的使用方法。接下来主要说明dhtmlx gantt 自定义表单控件的使用方法。 具体内容可查看官网:Creating Custom Element Gantt Docs 首先,需要定义一个表单控件的相关属性值 ...

weixin_46221897的博客 2508

DHTMLX Gantt 甘特图 使用

dhtmlxGantt 在vue中使用样例,实现了自定义弹窗、设置横道图颜色、修改列表样式、表单验证等。 官网样例:https://docs.dhtmlx.com/gantt/samples/ 官方文档:https://docs.dhtmlx.com/gantt/api__refs__gantt.html <template> <div style="height:500px"> <div ref="gantt" style="height:100%">&lt

baidu_29609779的博客 8339

dhtmlxGrid初始化加载,jquery请求加载数据

使用jquery的ajax请求到后台,取得数据库数据,返回前台grid中。 引入使用jquery需使用的js文件 引入使用dhtmlxCombo需使用的文件 js文件 var mygrid; // 定义mygrid $(document).ready(function(){ mygrid = new dhtmlXGridObje

caiyl1314的专栏 4410

dhtmlx技术使用总结与介绍中文手册

界面的主要元素概述 DHTMLX是一套完整的具有客户端程序效果的界面组件,解决了常见的客户端操作要求。这套组件采用javascript、xml定义组件性征,某些组件甚至可以直接渲染HTML元素。 常见的容器元素包括:布局(layout)、滑动窗口(accordion)、页签(tab)、窗口(window); 常见的数据元素包括:表格(grid)、树(tree)、选择框(combo)、日历(c

lylovejava0的专栏 3万+
上一篇: 〔推荐-转贴〕最高频的口语小词
下一篇: 商务公关:接待客户-英语会话
tryitsoft
博客等级 码龄20年 0粉丝 17原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值