开发TabSet AJAX控件并集成到WebShop IDE

Android自定义WheelView 没人可以预见未来,珍惜现在 看项目新原型,好像要用到时间选择控件,我看八成要自定义是吧,然后就去网上找了一点,说用这个WheelView做比较好,还能做什么省市县的。去github看了会,额,感觉可能为了功能强还是什么,感觉代码好多,四五百行,六七百行之类的。反正有时间,还是自己写一个吧。有问题自己也好改先看看效果 这里的WheelView继承的是view,我的思路是,数据和线自己画, 阅读详情

 

                                    开发扩展AJAX控件--TabSet

今天的题目是开发TabSet控件,并且将它集成到webshop的IDE环境中.

初步考虑的是TabSet的页头用table来做,便于无限增加页.(即增加td),然后TabSet有Add方法,能够将DIV添加为它的子页.

最后的样式是这个样子:

下面是TabSet的构造函数

//TAB页控件
function TabSet(parent)
{
obj=new Div(parent);
obj.Table = document.createElement('table');
obj.appendChild(obj.Table);
obj.TableBody = document.createElement('TBody');
obj.Table.appendChild(obj.TableBody);

obj.HeaderRow = document.createElement('tr');
obj.TableBody.appendChild(obj.HeaderRow);
obj.Buttons=new Array();
obj.Items=new Array();
obj.SelectTab;
obj.SelectIndex;
obj.Add=TabSet_Add;
obj.GetSelectTab=TabSet_GetSelectTab;
obj.GetSelectIndex=TabSet_GetSelectIndex;
obj.SetSelectIndex=TabSet_SetSelectIndex;
obj.SetSelectTab=TabSet_SetSelectTab;
obj.OnTabChange;
return obj;
}


实现TabSet的Add方法

function TabSet_Add(title,div){
if(!div)return;
if(div.parentNode)
div.parentNode.removeChild(div);
this.appendChild(div);
div.style.borderWidth=1;
div.style.borderStyle='solid';
div.style.display='none';
var tabtd = document.createElement('td');
this.HeaderRow.appendChild(tabtd);

var tabplace=new Div(tabtd);
var button=new Link(tabplace);
button.innerHTML='  '+title+'  ';
button.href='#';
button.style.textDecoration='none';

tabplace.style.borderWidth=1;
tabplace.style.borderStyle='solid';
tabplace.style.borderBottomWidth=0;
tabplace.style.position = 'relative';
tabplace.style.zIndex = 2;


this.Buttons[this.Buttons.length]=button;
button.tab=div;
button.tabtd=tabtd;
div.tabbutton=button;
div.Index=this.Items.length;
this.Items[this.Items.length]=div;
button.owner=this;
button.tabplace=tabplace;
button.onclick=TabSet_ButtonClick;

}


实现TabSet页头点击的事件,点击后切换页

function TabSet_ButtonClick(){
this.tab.style.display='block';
if(this.owner.SelectTab) 
if(this.owner.SelectTab!=this.tab){
this.owner.SelectTab.style.display='none';
this.owner.SelectTab.tabbutton.parentNode.style.backgroundColor='';
// this.owner.SelectTab.tabbutton.style.fontSize=12;
this.owner.SelectTab.tabbutton.tabplace.style.padding=0;
}
this.owner.SelectTab=this.tab;
this.owner.SelectIndex=this.tab.Index;

this.parentNode.style.backgroundColor=clWhite;
this.tabplace.style.padding=2;
if(this.owner.OnTabChange)this.owner.OnTabChange(this.owner,this.tab.Index);

// this.style.fontSize=16;
}
function TabSet_GetSelectTab(){
return this.SelectTab;
}

function TabSet_GetSelectIndex(){
if(this.SelectTab)
return this.SelectTab.Index;
}

function TabSet_SetSelectIndex(i){
if(isInspect)return;
if(i==null)i=0;
var button=this.Buttons[i];
if(button){
if(isIE)
button.click();
else
button.onclick();
}
}

function TabSet_SetSelectTab(i){
var tab=this.Items[i];
if(tab){
if(isIE)
tab.tabbutton.click();
else
tab.tabbutton.onclick();
}
}


好了,现在这个TabSet已经可以工作了,类似下面的代码使用它.

window.TabSet1=new TabSet();
window.Div1=new Div(TabSet1);
window.Div2=new Div(TabSet1);
window.Div3=new Div(TabSet1);
TabSet1.Name='TabSet1';
TabSet1.style.height='283';
TabSet1.style.width='461';
TabSet1.style.position='absolute';
TabSet1.style.left='99';
TabSet1.style.top='99';
TabSet1.SelectIndex=0;
Div1.Name='Div1';
Div1.style.height='259';
Div1.style.width='455';
Div1.style.position='absolute';
Div1.style.left='2';
Div1.style.top='20';
Div2.Name='Div2';
Div2.style.height='259';
Div2.style.width='455';
Div2.style.position='absolute';
Div2.style.left='2';
Div2.style.top='20';
Div3.Name='Div3';
Div3.style.height='259';
Div3.style.width='455';
Div3.style.position='absolute';
Div3.style.left='2';
Div3.style.top='20';
TabSet1.Add('Div1',Div1);;
TabSet1.Add('Div2',Div2);;
TabSet1.Add('Div3',Div3);;
TabSet1.SetSelectIndex(0);;


现在我们要将它集成到webshop的可视化IDE环境中.

在webshop/jcl目录下创建TabSet.XML文件,内容如下:

<?xml version="1.0" encoding="gb2312"?>
<class classname="TabSet" visible="true" iscontainer="true" extends="Div">
<private>
</private>
<protect>
</protect>
<public>
</public>
<published>
<properties>
<property name="SelectIndex" type="Integer">
</property>
</properties>
<methods>
</methods>
<events>
<event name="OnTabChange">
<params>
<param name="sender">
</param>
<param name="selectIndex">
</param>
</params>
</event>
</events>
</published>
</class>

然后打开webshop/config/webshop_palette.xml文件,加入下面一行:

<class classname="TabSet" file="" title="" icon="images/compalette/tabset.gif">
</class>
从而在webshop的元件选项板上增加了TabSet控件.


现在打开webshop,可以看到webshop的元件选项板上已多了一个TabSet,现在就可以可视化地拖拉并创建子页了,至此TabSet开发完成并集成到WebShop的IDE环境中.

以上开发基于WebShop 2.2版本.要下载这个TabSet的代码,可以到www.joyistar.com

 

C++实现复制粘贴文本功能 要实现这个功能,我们需要使用操作系统提供的函数来操作剪贴板。在Windows操作系统中,我们可以使用Windows API函数来访问剪贴板。总结起来,使用C++实现复制和粘贴文本功能涉及使用操作系统提供的API函数来操作剪贴板。在本篇文章中,我将向您展示如何使用C++编程语言实现复制和粘贴文本的功能。我们将使用操作系统提供的API来进行剪贴板操作,并编写相应的代码来完成这个任务。如果您使用的是Linux操作系统,您需要使用适当的库和函数来访问剪贴板。函数中,我们首先将一个字符串复制到剪贴板中,然后使用。 阅读详情

相关推荐

vmware vsphere 证书过期告警处理方法

vSphere Clinet 管理页面出现“证书告警” ,检查证书未发现现有证书有过期现象

m0_51902127的博客 3639

Angular 使用tabset 动态加载组件参数注入

在这篇文章中 介绍了使用tabset 动态加载组件的原理 ,http://blog.youkuaiyun.com/qq_16566415/article/details/78709580 后面发现需要在打开Components 的时候需要传递参数过去,这里找到了一个demo http://plnkr.co/edit/ZXsIWykqKZi5r75VMtw2?p=preview 具体可以参考。

立青的博客 3488

用LTspice仿真CMOS反相器功耗?这份避坑指南能省你3天调试时间

本文详细介绍了如何使用LTspice准确仿真CMOS反相器的功耗,包括动态功耗、短路功耗和静态功耗的测量技巧。通过工程实践指南,帮助电子工程师避开常见陷阱,优化仿真参数设置,提升仿真结果的可靠性,节省调试时间。

w7x8y9z的博客 189

select下拉选项的selectedIndex属性(你用过吗)

selectIndex为被选中option元素的索引值,通过selectIndex可设置选中项、获取索引值、删除指定项和修改指定项文本

cai niaoyihao_的博客 1万+

终端里藏了个AI大神!DeepSeek‑TUI让你的命令行直接起飞

DeepSeek-TUI:终端AI编程神器 DeepSeek-TUI是一款专为开发者设计的终端AI编程工具,基于DeepSeek V4模型,提供100万Token超大上下文支持,适合处理复杂项目。其核心优势包括: 轻量高效:单二进制文件,无需依赖环境,支持SSH远程操作 智能交互:实时流式输出推理过程,支持三档模式(Plan/Agent/YOLO)灵活切换 强大功能:集成文件读写、Git管理、Shell执行等工具,支持一键回滚和持久会话 节省成本:智能压缩与缓存优化,显著降低Token消耗 适用于服务器开发

965

rbf神经网络python预测代码_RBF神经网络预测

%用RBF网络来预测股票走势clcclear%归一化数据input=[0 0 0 0 0 0.0277;0.0177 0.0292 0.0184 0.0122 0.0264 0.0492;0.0374 0.0946 0.0393 ...

weixin_39951419的博客 1889

ng-bootstrap 组件集中 tabset 组件的实现分析

ng-bootstrap: tabset 本文介绍了 ng-bootstrap 项目中,tabset 的实现分析。 使用方式 <ngb-tabset> 作为容器元素,其中的每个页签以一个 <ngb-tab> 元素定义,在 <ngb-tabset> 中包含若干个 <ngb-tab> 子元素。 在 <ngb-tab> 元素中,使用 ...

weixin_30240349的博客 458

数据资产入表——解读100页数据资产入表解读与分析【附全文阅读】

本文档《数据资产入表:解读与分析》面向企业财务、数据管理、法务合规及高管等核心岗位,系统解析数据资产入表全流程。以"政策-实操-价值"为主线,首先解读入表政策要求,明确会计处理规范;其次详细拆解数据盘点、治理、确权、评估等实操步骤,提供行业案例参考;最后分析入表难点及后续运营策略,为企业提供从政策理解到落地执行的一站式解决方案。

cdfunlove的博客 392

angular三种tab选项卡的实现

FE-演示平台 通过设置改变开关: 选中第2个 选中第3个 开启/禁用第3个 html5内容 {{tab.content}}

知识中转站 1万+

Thinkpad可以安装Win11吗?Thinkpad升级Win11教程

win11正式版推出之后,不少用户也想要体验一把新系统,但是不知道thinkpad是否支持win11,其实基本上现在在售的都是可以升级win11的。2、如果大家使用的是老款的ThinkPad,那么可以通过软件来检测自己是否支持win11。【电脑健康状况检查下载】答:在售的ThinkPad都是可以支持win11的,但是部分旧版本不支持。2、这时候想要升级win11的话,就可以通过镜像系统的方式来跳过系统检测。3、如果使用上面的软件检测可以支持win11,那么只要进入“设置”

xhp618的博客 2987

YOLOv11 热力图可视化全流程:从模型解释到科研论证,让检测结果“有理可看”

无论是科研中需要严谨的模型解释,还是工业里要高效的缺陷定位,这套方法都能让你在“模型黑箱”与“业务需求”之间架起一座可视化的桥梁。别再让模型决策“无据可依”——现在就动手生成你的第一幅热力图,让 YOLOv11 的每一次检测都“有理可看”,用可视化的力量推动你的 AI 研究与落地走向深入!某团队在论文中通过热力图对比,证明其改进的注意力模块可使模型对小目标的关注区域更精准,实验论证说服力提升 50%;工业质检场景下,热力图帮助工程师快速定位模型漏检缺陷的原因——原来是对某类缺陷的特征关注不足。

m0_71589036的博客 678

如何在ngbtabset切换tab时不销毁页面只做隐藏

在ngb-tabset中设置destroyOnHide成false就可以达到目的。<ngb-tabset [destroyOnHide]="false"

ITLionWoo的专栏 1395

在jetson上对fastdeploy进行源码编译(完整版)

在大多数Linux发行版中,你可以使用包管理器安装Python开发包。根据jetpack的版本选择对应的推理库版本。在~/.bashrc中写入这三行。

如果想成为中心,那么就到中心去吧。 678

刚刚玩了一下TABSET的东西。。原来左右框数据选择交换叫FLIPFLOP。。。现在才知道。。。...

TABSET原来没有直接方法做的。真神奇。 转载于:https://www.cnblogs.com/miaomiaoga/archive/2004/10/28/57840.html

weixin_30576827的博客 217

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

js 对 select 常用操作

<script type="text/javascript"> var sel = document.getElementById("sel"); var len=sel.options.length; /* //判断select 有没有某个值 for(var i=0;i<len;i++...

weixin_34127717的博客 147

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

获取select的值和index

在js中有时不光要获得select多选框的值,还要获取显示出来的index. js如下 var selectObj = document.getElementsByName("plant_search")[0]; var plantName = selectObj.options[selectObj.selectedIndex].text; var plantId = document.g

oVeryHappy的博客 1848

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

MyBatis 查询条件 in 的实现

MyBatis 查询条件 in 的实现 Mapper配置: <!-- 查询已CR 、CR中的记录条数 --> <select id="getHasClaimPartAcc" resultType="int"> select count(1) as ac From t_swcas_bu_qgws_claim where CR_STATUS in ('CR中','已CR') and id in <foreach item="item"

Richy的博客 2515

语法基础——Objective-C语法基础

前言 学习过Swift之后,好久没用已经生疏了,现在有项目来了,不得不停下手下的工作,开始学习OC,当然这篇文章会以Java基础和C基础作为支撑,这样学习起来入门很简单,可能这篇文章有点个人主义,用作个人笔记吧 OC特点 支持C语法 支持面向对象特性 兼容性好,可以同时在项目中使用OC、C++,也可以引入C、C++库文件 OC中没有命名空间机制,也没有包的概念,为了区分不同的类,在类名...

点击置顶文章查看博客目录(全站式导航) 2万+

selectedIndex 属性

selectedIndex 属性可设置或返回下拉列表中被选选项的索引号。function load(){ var x = document.getElementById("mySelect"); x.selectedIndex = '-1'; //0为第一个选项。-1设置为空选项}删除被选的选项function mySelect(){ var x = document.getElementByI

chinashanzhang的博客 1万+

JQuery中 input areatext select checkbox radio 取值方法

http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> http://www.w3.org/1999/xhtml">     无标题页     jquery.js">     jquery_selecter.js">     jquery_checkbox.js">     $(document).ready(func

lbuskeep的专栏 1423

JQuery 对 Select option 的操作

下拉框: 1 2 3 4 5 6 下面是对下拉框的基本操作:

止境 1066

全新的JoyiStar AJAX WebShop3.0体验版本功能预览

全新的JoyiStar AJAX WebShop3.0体验版本功能预览 作 者:Joyistar [url]http://cn.joyistar.com[/url] 1、3.0体验版的简要说明 (1)同时支持基于Java和.NET的AJAX应用开发; (2)同时支持的语言将包括:Java、C#、VB等; (3)可以实现包括代码向导、语言开发支持、集成...

weixin_34195364的博客 189

下拉列表

&lt;html&gt;&lt;head&gt;&lt;title&gt;获取下拉列表选中项的值和文本(select)&lt;/title&gt;&lt;/head&gt;&lt;body&gt;&lt;script&gt;//获取下拉列表选中项的文本function getSelectedText(name){var obj=document.getElementById(name);for(i

smartfirstme的专栏 206

selectedIndex 属性可设置或返回下拉列表中被选选项的索引号。

转自:https://blog.youkuaiyun.com/xxj19950917/article/details/73002046

weixin_33922670的博客 2498

AndroidRecyclerView仿QQ相册功能

实例模仿新版QQ相册功能,RecyclerView实现相册选择,DiskLruCache实现图片缓存,ItemTouchHelper实现图片的拖拽排序。BaseActivity 相册功能比较常用,单独封装了下public abstract class BaseActivity extends AppCompatActivity { protected RecyclerView mRecyc

lishengko的博客 4301
上一篇: 关于.JS文件保存编码格式的问题-兼容各种语言版本
下一篇: JUNO平台数据库连接池配置
testdll
博客等级 码龄26年 1粉丝 15原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值