TreeView(扩充XMLSelTree)(二)

xmlseltree.rar 客户端环境<br> IE5.x<br> IE6<br><br><br>无限级树结构<br> 不限制,理论上为树的深度可以无限<br> 数据加载:a.一次加载 b.动态加载 c. a+b<br> 是否只显示树的一个枝节<br> 是否自动展开枝节下第一个叶<br> 是否每次重新加载子节点<br> 节点图标有节点属性动态指定<br> 当前节点图标改变,父系节点图标改变<br> 当前节点高亮显示<br><br><br>选择节点所包含的数据子集<br> 子集数据:选择节点数据数据子集时动态加载<br> 子节点选择状态,自动跟随父节点的选择状态<br> 当所有子节点全部选中,所有父系节点自动选中<br> 当子节点有一个未选中,所有父系节点自动取消选中状态<br> 当节点获得焦点,是否同时改变节点的选择状态<br> 自由指定节点数据子集中,数据的分隔符 立即下载

TreeView(扩充XMLSelTree)

VisualSW

基于XML、JavaScript的TreeView。

}

            else

            {

                ReadNode(Element.childNodes[i],s_Text,s_Value,OP);

            }

        }            

    }

    else

    {

        //alert(Element.getAttribute("Title") + Element.getAttribute("CheckData") + Element.getAttribute("Checked"));

        if((Element.getAttribute("Title")==s_Text) && (Element.getAttribute("CheckData")==s_Value))

        {               

            switch(OP)

            {

                case "ADD":

                    var NewNode = oXMLDom.createNode(1, "TreeNode", "");

                    NewNode.setAttribute("Title",ipt_Title.value);

                    NewNode.setAttribute("CheckData","000");

                    NewNode.setAttribute("CHK","true");

                    Element.appendChild(NewNode);

                    break;

                case "MODIFY":

                    Element.setAttribute("Title",ipt_Title.value);

                    Element.setAttribute("Caption",ipt_Caption.value);

                    break;

                case "DELETE":

                    Element.parentNode.removeChild(Element);

                    break;

                default:

                    break;

            }           

        }

    }

}

 

/*

======================================================================

JavaScript鼠标右键菜单

作者:申旺

日期: 2004/05/13

注意:

======================================================================

*/

 

var Style;

Style="<style>" +

".skin0" +

"{" +

"      position:absolute;" +

"      text-align:left;" +

"      width:80px;" +

"   border-top-style: #000000 2px solid;" +

"   border-right-style: #000000 2px solid;" +

"   border-left-style: #000000 2px solid;" +

"   border-bottom-style: #000000 2px solid;" +

"      background-color:menu;" +

"      font-family:Verdana;" +

"      line-height:20px;" +

"      cursor:default;" +

"      visibility:hidden;" +

"}" +

".skin1" +

"{" +

"      cursor:default;" +

"      font:menutext;" +

"      position:absolute;" +

"      text-align:left;" +

"      font-family: Arial, Helvetica, sans-serif;" +

"      font-size: 10pt ;" +

"      width:120px;" +

"      background-color:menu;" +

"      border:1 solid buttonface;" +

"      visibility:hidden;" +

"      border:2 outset buttonhighlight;" +

"}" +

".menuitems" +

"{" +

"   font-size: 9pt ;" +

"   font-family: /"宋体/",Arial;" +

"      padding-left:15px;" +

"      padding-right:10px;" +

"}" +

"-->" +

"</style>";

 

var OutDiv;

OutDiv="<div id=/"ie5menu/" class=/"skin1/" onMouseover=/"highlightie5()/" onMouseout=/"lowlightie5()/">" +

"<div class=/"menuitems/" onclick=/"domenu('close')/">返回</div>" +

"<hr>"+

"<div class=/"menuitems/" onclick=/"domenu('modify')/">修改</div>"+

"<hr>"+

"<div class=/"menuitems/" onclick=/"domenu('add')/">增加</div>"+

"<hr>"+

"<div class=/"menuitems/" onclick=/"domenu('delete')/">删除</div>"+

"</div>";

 

var AddORModify;

AddORModify="<div id=/"addormodify/" class=/"skin0/">" +

"Title:<input id=ipt_Title type=textbox value=/"/">" + "<br>" +

"Caption:<input id=ipt_Caption type=textbox value=/"/">" + "<br>" +

"<input id=btn_Cancel type=button value='取消' onclick=/"JavaScript:HideAddOrModify();/">" +

"<input id=btn_Submit type=button value='确定' onclick=/"JavaScript:Submit();/">" +

"<input type=hidden id=hid_Text value=''><input type=hidden id=hid_Value value=''>" +

"</div>";

 

var Select_Text;

var Select_Value;

 

function Init()

{  

    //write AddOrModify

       document.write(AddORModify);

      

       //write style   

       document.write(Style);

      

       //write menu   

       document.write(OutDiv);

      

       if(document.all&& window.print)

       {

              //ie5menu.className= menuskin;

              document.oncontextmenu= DoNothing;

              document.body.onclick= HideMenuIE5;

       }

}

 

function DoNothing()

{

    return false;

}

 

//初始化右键菜单

Init();

 

function ShowMenuIE5(p_Text,p_Value)

{   

    Select_Text=p_Text;

    Select_Value=p_Value;

   

       var rightedge= document.body.clientWidth-event.clientX;

       var bottomedge= document.body.clientHeight-event.clientY;

       if(rightedge< ie5menu.offsetWidth)

       ie5menu.style.left= document.body.scrollLeft+ event.clientX -

       ie5menu.offsetWidth;

       else

       ie5menu.style.left= document.body.scrollLeft+ event.clientX;

       if(bottomedge< ie5menu.offsetHeight)

       ie5menu.style.top= document.body.scrollTop+ event.clientY -

       ie5menu.offsetHeight;

       else

       ie5menu.style.top= document.body.scrollTop+ event.clientY;

       ie5menu.style.visibility="visible";

      

       addormodify.style.visibility="hidden";

      

       return false;

}

 

function HideMenuIE5()

{

    Select_Text="";

    Select_Value="";

       ie5menu.style.visibility="hidden";

       //addormodify.style.visibility="hidden"; 

}

 

function highlightie5()

{

       if(event.srcElement.className=="menuitems")

       {

              event.srcElement.style.backgroundColor="highlight";

              event.srcElement.style.color="white";         

       }

}

 

function lowlightie5()

{

       if(event.srcElement.className=="menuitems")

       {

              event.srcElement.style.backgroundColor="";

              event.srcElement.style.color="black";

              window.status="";

       }    

}

 

function domenu(src)

{   

    switch(src)

    {

        case "return":

            HideMenuIE5();

            break;

        case "delete":

            if(confirm("确认删除?"))

            {

                DeleteNode(Select_Text,Select_Value);

            }

            break;

        case "add":          

            ShowAddOrModify("add");

            break;

        case "modify":           

            ShowAddOrModify("modify");

        default:

            break;       

    }

}

 

function Submit()

{   

    if(btn_Submit.value=="修改")

    {       

        ModifyNode(hid_Text.value,hid_Value.value);

        HideAddOrModify();

    }

    else

    {

        AddNode(hid_Text.value,hid_Value.value);

        HideAddOrModify();

    }

}

 

function HideAddOrModify()

{

    Select_Text=="";

    Select_Value=="";

    addormodify.style.visibility="hidden";

    ipt_Title.value="";

    ipt_Caption.value="";

}

 

function ShowAddOrModify(src)

{

   

    var rightedge= document.body.clientWidth-event.clientX;

       var bottomedge= document.body.clientHeight-event.clientY;

       if(rightedge< addormodify.offsetWidth)

       addormodify.style.left= document.body.scrollLeft+ event.clientX -

       addormodify.offsetWidth;

       else

       addormodify.style.left= document.body.scrollLeft+ event.clientX;

       if(bottomedge< addormodify.offsetHeight)

       addormodify.style.top= document.body.scrollTop+ event.clientY -

       addormodify.offsetHeight;

       else

       addormodify.style.top= document.body.scrollTop+ event.clientY;

       addormodify.style.visibility="visible";   

      

    if(src=="modify")

    {       

        ipt_Title.value=Select_Text;

        ipt_Caption.value=Select_Text;

        hid_Text.value=Select_Text;

        hid_Value.value=Select_Value;

        btn_Submit.value="修改";

    }

    else

    {

        ipt_Title.value="";

        ipt_Caption.value="";

        hid_Text.value=Select_Text;

        hid_Value.value=Select_Value;

        btn_Submit.value="新增";

    }   

}

代码不是很规范,给大家参考。

用SOEM库搞定汇川SV660N伺服电机:一个Linux C程序员的EtherCAT实战笔记 本文详细介绍了如何在Linux系统下使用SOEM库驱动汇川SV660N伺服电机,包括环境搭建、EtherCAT从站设备识别、PDO映射配置、状态机切换与运动控制等关键步骤。通过实战代码示例和常见问题排查指南,帮助开发者快速掌握工业自动化中的EtherCAT通信技术,实现对伺服电机的精准控制。 阅读详情

相关推荐

YOLOv8实战:5分钟搞定Windows环境下的目标检测模型部署(附常见报错解决方案)

本文详细介绍了在Windows环境下快速部署YOLOv8目标检测模型的实战指南,包括环境配置、模型加载、快速验证及常见报错解决方案。通过5分钟快速入门教程,帮助开发者高效实现计算机视觉应用,特别适合需要快速上手的AI开发者。

weixin_30566063的博客 556

TreeView(扩充XMLSelTree)(一)

TreeView(扩充XMLSelTree)VisualSW基于XML、JavaScript的TreeView。参考http://61.163.246.155/pro/XMLSelTree/感谢XMLSelTree程序的作者。增加功能:右键添加删除节点、保存Check状态、展开所有节点、合并所有节点等。效果图:合并获取XML,获取树结构的XML字符串右键

VisualSW的专栏 2531

二、基于C语言的JPEG解码代码详解

// JPEG解码 // 输入JPEG后输出Bitmap #include <stdio.h> #include <stdlib.h> #pragma warning(disable : 4996) unsigned int BuffIndex; // JPEG数据的位置 unsigned int BuffSize; // JPEG数据的大小 unsigned int BuffX; // 图像的横向尺寸 unsigned int BuffY; //

m0_37633745的博客 4455

浏览器兼容性改造之为XML支持

1、问题描述   1.1、序列化XML     在IE中,提供xml属性,轻松序列化DOM文档,如下:     var xml = xmldom.xml;     为了将XML DOM文档序列化为XML字符串,FireFox 引入了XMLSerializer类型。其他浏览器Opera、Chrome和Safari都支持XMLSerializer,但IE8仍然不支持XMLSerializer

释然 7765

4.2 结构翻模

结构翻模功能可以将DWG文件中的二维图线对象:轴网、墙、柱、梁、基础、房间和面积等快速转换成Revit模型对象,翻模速度快,准确率高。与先前的模盒翻模功能不同,结构翻模不再需要在AutoCAD中提取模型的图线,所有操作在Revit均可完成。(1)翻模程序适用于钢筋混凝土结构的平法DWG文件。(2)将平法中所表示的轴网线,轴网文字,结构柱,梁,结构墙在Revit 中重新建出来。(3) 模盒可以翻出连...

fishbuaa的专栏 1796

RTC时钟芯片替换代码移植-IIC通信

1、问题 RTC时钟芯片由爱普生RX-8010SJ更换成大普INS5710A,两者都是IIC通信,更换大普芯片后时钟不走、以及报掉电错误。仿真分析原因是CPU和RTC芯片收发数据延时不够导致,根据爱普生芯片手册,8010收发数据不采取延时,但大普芯片采用同样方式读取不行(需要加延时) 2、RX-8010SJ手册说明(以读取数据为例) (1)寄存器读操作时序图 指定地址读操作: 1)CPU 发送开始条件[S] 2)CPU 传输RX-8010SJ 的从地址,用R/W 位设定写模式 3)检测从RX-8010

weixin_42851683的博客 2066

xml应用(3):附带选择功能的树的实现 XMLSelTree(V1.0)

XMLSelTree(V1.0) 演示:http://61.163.246.155/pro/XMLSelTree/示例图: 一:功能简介:客户端环境 IE5.x IE6无限级树结构 不限制,理论上为树的深度可以无限 数据加载:a.一次加载 b.动态加载 c. a+b 是否只显示树的一个枝节 是否自动展开枝节下第一个叶 是否每次重新加载子节点 节点图标有节点属性动态指定 当前节点图

moonpiazza的专栏 2935

MultiOTP Credential Provider避坑指南:从安装到RDP双因素认证的全流程解析

本文详细解析了MultiOTP Credential Provider从安装到实现RDP双因素认证(MFA)的全流程,重点分享了Docker部署、Active Directory集成及网络级认证(NLA)兼容性等环节的实战避坑经验,旨在帮助运维人员高效、稳定地部署离线双因素认证方案,提升Windows远程桌面安全性。

weixin_29255731的博客 642

[导入]xml应用(3):附带选择功能的树的实现 XMLSelTree(V1.0)

文章来源:http://blog.youkuaiyun.com/moonpiazza/archive/2003/07/03/16022.aspx 转载于:https://www.cnblogs.com/moonpiazza/archive/2003/07/03/212045.html

weixin_30593443的博客 149

Windows系统监控实战:Grafana+Prometheus+node_exporter保姆级配置指南(含常见问题解决)

本文提供了一份详尽的Windows系统监控实战指南,详细讲解了如何从零部署Grafana、Prometheus和node_exporter(实际为windows_exporter)监控栈。内容涵盖核心组件认知、分步配置解析、高级生产环境考量,并重点针对配置过程中常见的“No Data”问题提供了系统性的排查手册,旨在帮助用户快速搭建稳定可靠的系统资源监控平台。

weixin_29197835的博客 1008

【原理图PCB专题】Allegro模块化移动器件报...has the LOCKED property怎么解锁?

正常来说做好一个模块化,如果不需要再动,最好还是lock,防止不明白的工程师异动导致问题。如果复用布局设计时,因为有些器件和拓扑并不完全一致,那需要调整部分器件,被锁之后只能全选,无法修改。所以解开锁定后,就能正常编辑了。

一点硬件 2391

SQL tree查询

select * from ams_app_special t start with t.special_id=129 connect by prior t.parent_id = t.special_id 查询所有父节点 select * from ams_app_special t start with t.special_id=129 connect by prior t...

rj0511的专栏 613

第170篇 因子图优化入门——图模型在状态估计中的应用

本文系统介绍了从滤波方法到因子图优化的思维转变,重点解析了因子图的原理与应用。首先对比了递推式滤波(卡尔曼滤波等)与全局优化的区别,指出优化方法能利用所有信息且适合处理稀疏结构。然后详细阐述了因子图的二部图结构(变量节点和因子节点)及其将复杂概率分布分解为小因子乘积的优势。文章讲解了因子图优化如何转化为最小二乘问题,并介绍高斯-牛顿法和LM方法等求解技术。最后对比了g2o、Ceres和GTSAM三大主流框架的特点及适用场景,强调了初始化和鲁棒核函数的重要性,为SLAM相关面试提供了实用建议。

郑伟强dev的专栏 374

xml+xsl应用,包含中文字符的URL编码问题

在xml应用中,经常将一些URL信息作为xml数据存储,其中URL参数有可能包含有中文字符。当使用dom对xml数据进行解析时,可以对中文字符进行编码。但如果只使用xslt来显示xml数据时(data.xml+data.xsl),发现此时的URL会出现编码错误.即使指定编码类型(encoding="gb2312"),依然会出现同样的问题.测试发现:是IE的缓存机制问题,IE仍会把新的页面(所链接的

moonpiazza的专栏 3572

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

VB摄像头监控

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

Web 版翻译者资料库

本项目是桌面版《翻译者资料库》的 Web 移植版,基于 Spring Boot 3.3、Thymeleaf、Bootstrap 5.3 与 MySQL 8.0 构建。它面向翻译写作提供资料、词汇、句库、文本工具、对照制作、查找、备份恢复及旧库迁移等功能,完整继承桌面版核心业务规则,支持一键启动与离线访问。

howard2005的专栏 144

蓝牙模块HM-10手册

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

上一篇: TreeView(扩充XMLSelTree)(一)
下一篇: JavaScript图形库
笑对最好
博客等级 码龄24年 4粉丝 12原创
评论 6
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值