如何在asp里实现类似pb的tab页的功能?

peytonzwt 2003-08-20 01:57:14
如何在asp里实现类似pb的tab页的功能?各位老大谁有代码啊?
...全文
81 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
peytonzwt 2003-08-20
  • 打赏
  • 举报
回复
好的,收到了,谢谢。不管能不能用都要给分了。
liuzxit 2003-08-20
  • 打赏
  • 举报
回复
天啊﹐怎么貼著貼著內容又刪掉一些﹐寄給你吧
liuzxit 2003-08-20
  • 打赏
  • 举报
回复
終于等到回復了﹐CSDN限制三次回復﹐真麻煩﹐以上是剩下部分﹐我在IE5.5試過可以
liuzxit 2003-08-20
  • 打赏
  • 举报
回复
function SetDefaults()
{
if(tagName=="container")
{
CustomDefault('td--tab-orientation', 'tdTabOrientation', 'top');
NormalDefault('width', 'auto');
NormalDefault('height', 'auto');
NormalDefault('background', 'buttonface');
NormalDefault('color', 'buttontext');
}
}

function CustomDefault(sCSSName, sScriptName, sDefault)
{
if (currentStyle[sCSSName] == null)
{
style[sCSSName] = sDefault;
}
else style[sCSSName] = currentStyle[sCSSName];
style[sScriptName] = style[sCSSName];
}

function NormalDefault(sCSSName, sDefault)
{
if (style[sCSSName] == "" || style[sCSSName] == null)
{
style[sCSSName] = sDefault;
}
}

function SelectTab()
{
var oContainer = null;
if(tagName=="container") oContainer = element;
if(tagName=="page") oContainer = parentElement;
if(isNaN(parseInt(oContainer.selectedIndex)))
{
for(i=0; i<oContainer.children.length; i++)
{
if(oContainer.children(i).TABTEXT==oContainer.selectedIndex) oContainer.selectedIndex = i + 1;
}
if(isNaN(parseInt(oContainer.selectedIndex))) oContainer.selectedIndex = 1;
}

if(oContainer.selectedIndex > oContainer.children.length)
{
var TempClass = oContainer.children(0).children(1).className;
TempClass = "ActiveTab" + TempClass.substring(TempClass.indexOf("_"), TempClass.length);
oContainer.children(0).children(1).className = TempClass;
return;
}

var TempClass = oContainer.children(oContainer.selectedIndex-1).children(1).className;
TempClass = "ActiveTab" + TempClass.substring(TempClass.indexOf("_"), TempClass.length);
oContainer.children(oContainer.selectedIndex-1).children(1).className = TempClass;
}

function DeselectTab()
{
var oContainer = null;
if(tagName=="container") oContainer = element;
if(tagName=="page") oContainer = parentElement;

for(i=0; i<oContainer.children.length; i++)
{
var TempClass = oContainer.children(i).children(1).className;
TempClass = "DormantTab" + TempClass.substring(TempClass.indexOf("_"), TempClass.length);
oContainer.children(i).children(1).className = TempClass;
}
}

peytonzwt 2003-08-20
  • 打赏
  • 举报
回复
liuzxit(关系是第一生产力) 不行啊,你用过了没有啊?能给我发一个例子吗?包括原代码和页面。发到zhouweitao@sina.com
liuzxit 2003-08-20
  • 打赏
  • 举报
回复
function MakeTab(iLeft, iWidth, sLabel, sTitle, iIndex)
{
var sTopDisplay = null;
var sBottomDisplay = null;
if(parentElement.style.tdTabOrientation.toUpperCase()=="TOP")
{
sTopDisplay = "inline";
sBottomDisplay = "none";
}
if(parentElement.style.tdTabOrientation.toUpperCase()=="BOTTOM")
{
sTopDisplay = "none";
sBottomDisplay = "inline";
}

var sHTML = "";
sHTML = sHTML + '<TABLE ID=Tab onclick="parentElement.parentElement.selectedIndex = this.index" CLASS=DormantTab_' + uniqueID + ' index=' + iIndex + ' CELLPADDING=0 CELLSPACING=0 STYLE="left:' + iLeft + '">';
sHTML = sHTML + '<TR STYLE="display:' + sTopDisplay + '">';
sHTML = sHTML + '<TD STYLE="width:1px; height:1px" CLASS=Transparent_' + uniqueID + '></TD>';
sHTML = sHTML + '<TD STYLE="width:1px" CLASS=Transparent_' + uniqueID + '></TD>';
sHTML = sHTML + '<TD CLASS=LightShadow_' + uniqueID + '></TD>';
sHTML = sHTML + '<TD STYLE="width:1px" CLASS=Transparent_' + uniqueID + '></TD>';
sHTML = sHTML + '<TD STYLE="width:1px" CLASS=Transparent_' + uniqueID + '></TD>';
sHTML = sHTML + '</TR>';
sHTML = sHTML + '<TR STYLE="display:' + sTopDisplay + '">';
sHTML = sHTML + '<TD CLASS=Transparent_' + uniqueID + ' STYLE="height:1px"></TD>';
sHTML = sHTML + '<TD CLASS=LightShadow_' + uniqueID + '></TD>';
sHTML = sHTML + '<TD CLASS=Tab_' + uniqueID + '></TD>';
sHTML = sHTML + '<TD CLASS=DarkShadow_' + uniqueID + '></TD>';
sHTML = sHTML + '<TD CLASS=Transparent_' + uniqueID + '></TD>';
sHTML = sHTML + '</TR>';
sHTML = sHTML + '<TR>';
sHTML = sHTML + '<TD CLASS=LightShadow_' + uniqueID + '></TD>';
sHTML = sHTML + '<TD CLASS=Tab_' + uniqueID + '></TD>';
sHTML = sHTML + '<TD CLASS=Tab_' + uniqueID + ' TITLE="' + sTitle + '" STYLE="font:9pt MS Sans Serif; width:' + iWidth + '; height:20px; padding-left:4px; padding-right:4px">' + sLabel + '</TD>';
sHTML = sHTML + '<TD CLASS=MediumShadow_' + uniqueID + '></TD>';
sHTML = sHTML + '<TD CLASS=DarkShadow_' + uniqueID + '></TD>';
sHTML = sHTML + '</TR>';
sHTML = sHTML + '<TR STYLE="display:' + sBottomDisplay + '">';
sHTML = sHTML + '<TD CLASS=Transparent_' + uniqueID + ' STYLE="height:1px"></TD>';
sHTML = sHTML + '<TD CLASS=LightShadow_' + uniqueID + '></TD>';
sHTML = sHTML + '<TD CLASS=Tab_' + uniqueID + '></TD>';
sHTML = sHTML + '<TD CLASS=DarkShadow_' + uniqueID + '></TD>';
sHTML = sHTML + '<TD CLASS=Transparent_' + uniqueID + '></TD>';
sHTML = sHTML + '</TR>';
sHTML = sHTML + '<TR STYLE="display:' + sBottomDisplay + '">';
sHTML = sHTML + '<TD STYLE="width:1px; height:1px" CLASS=Transparent_' + uniqueID + '></TD>';
sHTML = sHTML + '<TD STYLE="width:1px" CLASS=Transparent_' + uniqueID + '></TD>';
sHTML = sHTML + '<TD CLASS=DarkShadow_' + uniqueID + '></TD>';
sHTML = sHTML + '<TD STYLE="width:1px" CLASS=Transparent_' + uniqueID + '></TD>';
sHTML = sHTML + '<TD STYLE="width:1px" CLASS=Transparent_' + uniqueID + '></TD>';
sHTML = sHTML + '</TR>';
sHTML = sHTML + '</TABLE>';

insertAdjacentHTML('BeforeEnd', sHTML);
}


function CreatePageStyleSheet()
{
// Create Page StyleSheet page
element.document.body.MPCPageStyleSheet = element.document.createStyleSheet();
StyleInfo = element.document.body.MPCPageStyleSheet;

//get values of container background color and foreground color
var sForeColor = parentElement.style.color;
var sBackColor = parentElement.style.background;

//determine value of iTop for placement of tabs
var iTop = null;
if(parentElement.style.tdTabOrientation.toUpperCase() == "TOP") iTop = -22;
if(parentElement.style.tdTabOrientation.toUpperCase() == "BOTTOM") iTop = parentElement.style.posHeight - 2;


StyleInfo.addRule( '.Transparent_' + uniqueID, 'width:1px; height:1px; font-size:0px');
StyleRules['Transparent'] = StyleInfo.rules[StyleInfo.rules.length-1].style;

StyleInfo.addRule( '.LightShadow_' + uniqueID, 'background:white; font-size:0px');
StyleRules['LightShadow'] = StyleInfo.rules[StyleInfo.rules.length-1].style;

StyleInfo.addRule( '.MediumShadow_' + uniqueID, 'background:gray; font-size:0px');
StyleRules['MediumShadow'] = StyleInfo.rules[StyleInfo.rules.length-1].style;

StyleInfo.addRule( '.DarkShadow_' + uniqueID, 'background:black; font-size:0px');
StyleRules['DarkShadow'] = StyleInfo.rules[StyleInfo.rules.length-1].style;

StyleInfo.addRule( '.Tab_' + uniqueID, 'background:' + sBackColor + '; color:' + sForeColor);
StyleRules['Tab'] = StyleInfo.rules[StyleInfo.rules.length-1].style;

StyleInfo.addRule( '.DormantTab_' + uniqueID, 'position:absolute; z-index:2; cursor:default');
StyleRules['DormantTab'] = StyleInfo.rules[StyleInfo.rules.length-1].style;

StyleInfo.addRule( '.ActiveTab_' + uniqueID, 'position:absolute; z-index:4; cursor:default');
StyleRules['ActiveTab'] = StyleInfo.rules[StyleInfo.rules.length-1].style;

StyleInfo.addRule( '.DormantContent_' + uniqueID, 'position:absolute; visibility:hidden; top:0; left:0; background:silver');
StyleRules['DormantContent'] = StyleInfo.rules[StyleInfo.rules.length-1].style;

StyleInfo.addRule( '.ActiveContent_' + uniqueID, 'position:absolute; height:100%; width:100%; border-left:solid 1 white; border-top:solid 1 white; border-bottom:solid 1 black; border-right:solid 1 black; background:' + sBackColor + '; z-index:3');
StyleRules['ActiveContent'] = StyleInfo.rules[StyleInfo.rules.length-1].style;


}
liuzxit 2003-08-20
  • 打赏
  • 举报
回复
=====mpc.htc========
<PROPERTY NAME="selectedIndex"/>
<PROPERTY NAME="CumulativeTabWidth"/>
<PROPERTY NAME="ContainerHeight"/>

<EVENT NAME="onchange" ID="change" />
<EVENT NAME="onfocus" ID="focus" />

<METHOD NAME="FireFocus"/>

<ATTACH EVENT="ondocumentready" HANDLER="DoInit" />


<SCRIPT LANGUAGE="jscript">
var StyleInfo;
var StyleRules = new Array();
var iIndex = null;
function DoInit()
{
//if container....
if(tagName=="container")
{
style.position = "absolute";
CumulativeTabWidth = -1;
if(selectedIndex==null) selectedIndex = 1;
SetDefaults();
ContainerHeight = style.posHeight;
}

if(tagName=="page")
{
var iIndex = null;
for(c=0; c<parentElement.children.length; c++)
{
if(element == parentElement.children(c)) iIndex = c + 1;
}


//create and insert the HTML that is the content area for the tab
MakeContent();

//determine the width of this tab, using a simple algorithm (fairly reliable,
//since the font family and size are restricted
var iWidth = 6*parseInt(TABTEXT.length);

//create and insert the HTML that is the tab
MakeTab(parentElement.CumulativeTabWidth+1, iWidth+6, TABTEXT, TABTITLE, iIndex);

//reset CumulativeTabWidth
parentElement.CumulativeTabWidth = parentElement.CumulativeTabWidth + iWidth + 18;

//create a stylesheet for the tab
CreatePageStyleSheet();

//determine which tab in the collection this one is. If last, do some configuring
var Tabs = window.document.all("Tab");
if(parentElement.children.length == 1)
{
SelectTab();
SelectContent();
SetTabTop();
ConfirmContainerWidth();
SetContainerHeight();
}
else
{
if(Tabs.length == parentElement.children.length)
{
SelectTab();
SelectContent();
SetTabTop();
ConfirmContainerWidth();
SetContainerHeight();
}
}

}
attachEvent("onpropertychange", DoPropChange);
}

function MakeContent()
{

var sHTML = '<DIV onclick="window.event.cancelBubble = true" CLASS=DormantContent_' + uniqueID + '>' + innerHTML + '</DIV>';
innerHTML = "";
insertAdjacentHTML('BeforeEnd', sHTML);

}
liuzxit 2003-08-20
  • 打赏
  • 举报
回复
給一個別人的給你

=========mpc.htm===========
<HTML xmlns:mpc>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<TITLE>mpc</TITLE>
<STYLE>
mpc\:container,mpc\:page{
behavior:url(mpc.htc);
}
</STYLE>
</HEAD>

<BODY BGCOLOR="#FFFFFF" ONLOAD="oMPC.style.visibility='visible'" text="#000000">
<div style="position:absolute;height:200;width:400;margin-top:20">
<mpc:container ID="oMPC" STYLE="width:400; height:200; visibility:hidden">
<mpc:page ID="tab1" TABTITLE="這是一個表格" TABTEXT="表格 "><br><br><table ALIGN="CENTER" STYLE="border:1 solid;font:20pt; width:300; height:150; color:white"><tr><td VALIGN="MIDDLE" ALIGN="CENTER">這是一個表格</td></tr></table><br><br></mpc:page>
<mpc:page ID="tab2" TABTITLE="這裡可以寫入文本" TABTEXT="文本文字 "><div STYLE="padding:12px; font:10pt; font-style:italic">請在這裡寫入文字 </div>
</mpc:page> <mpc:page ID="tab3" TABTITLE="這是圖像" TABTEXT="圖像 "> <img src=sample.jpg border=1 hspace="75" vspace="30">
</mpc:page> <mpc:page ID="tab4" TABTITLE="這是可以是其他內容" TABTEXT="其他內容 "><br> <a href=#><font face="楷體_GB2312" size="2">超級鏈接</font></a></mpc:page>
</mpc:container> </div>
</BODY>
</HTML>
lions911 2003-08-20
  • 打赏
  • 举报
回复
ASPNET里面有TABSCRIPT控件可以实现你要的效果。

ASP里面只能模拟完成吧。
peytonzwt 2003-08-20
  • 打赏
  • 举报
回复
有没有人知道啊?我很着急的。谢谢了!
咖啡智能报表控件 2.0[下载地址] 咖啡智能报表组件是一个类似Excel风格的报表组件 1、操作风格与EXCEL类似,是一款表格型报表组件,功能强大、操作简单 2、灵活多样性的单元格属性 合并、拆分、对齐方式、背景、前景、边框、前缀、后缀、格式化、套打标志、数字大写显示、多种数据类型、 数据长度设定、多种单元格类型、超级链接、EMAIL链接、特殊字符前缀、回车换行、自动换行、锁定、焦点、 绑定变量名称、绑定数据字段名称、显示图片、内容隐藏、项目格式等 3、强大公式计算功能 4、图片显示功能,图片可以随网格大小而变动,也可以固定大小 5、画线功能,线可以随单元格大小变动而变动,也可以固定大小 6、图标功能,多种类型图标(平面、3D的方形图、柱形图、饼图、线形图、雷达图、堆栈图), 可以水平显示或垂直显示;饼图可以把柄切开提取显示 7、画笔功能;报表提供了画笔功能,可以批示报表,重点圈画报表。 8、多表单,一个报表可以有多个表单,理论上没有多少限制,表单TAB标签可以显示或隐藏,也可以显示或隐藏其中一个。 9、灵活的键盘、鼠标操作功能;可以设置多样化的回车键操作,例如回车在单元格内数据换行、移到左单元格、移到下单元格等。 10、灵活的数据输出功能,可以输出多种格式的TXT文件、HTML文件。在输出HTML文件时连同图片一起输出。 11、数据搜索功能,按列或行搜索指定的数据 12、表单:背景颜色、背景图片、网格颜色、隐藏网格、奇偶行颜色、当前行颜色、设置列标题、格式刷, 根据变量设置单元格内容、根据单元格字段设置内容等。 13、灵活的打印功能;设置行打印分割线、列打印分割线、眉、脚、背景图片文字、 套打、浅色打印、水平居中、垂直居中等;眉、脚分左、中、右三部分,可以设置图片等各种属性 14、强大的一维条码(CODE11、CODE39、CODE93、CODE128A、CODE128B、CODE128C、CODE128、CODABAR、 EAN8、EAN13、INTERLEAVED25、JAN、MSI、STANDARD25、UPCA、UPCE)、二维条码(QR码、PDF417码)功能 15、各种报表事件,500多个报表接口 16、智能: 组件的智能性体现在除了大量功能函数外,数据绑定包含各种数据库的绑定(oracle、DB2、MS SQL、ACCESS等)、 文本文件数据绑定,数据源没有个数限制,可以添加多个数据源进行数据显示,咖啡智能报表不是简单的进行数据填充显示, 具有强大的数据处理能力,例如:数据格式自动处理,根据数据自动分组统计,复杂交叉报表处理提供了数据自动分组归类、 列分组统计、列总计、行分组统计、行总计等功能,根据定义的函数(求和、最大值、最小值、平均值、个数、排序值) 计算出相应的数值,在数据处理中根据数据所属数据范围自动求和运算等,用户只简单的提供数据就可以得出复杂强大的报表, 除了智能的处理外也提高了系统处理性能。 17、强大WEB功能 通过接口可以下载WEB服务上的报表、下载绑定数据(实现WEB绑定功能)、下载XML数据;XML数据中可以包含多种格式的数据 (下载报表地址、表格数据、报表绑定数据、单元格变量数据、单元格字段数据、操作报表方法等),在XML中的方法可以实现 对本地报表的操作。 报表本身的数据通过HTTP协议上传到服务器上,数据可以是单元格数据、变量数据、字段数据;在服务器端获得获得上传数据的方式与IE浏览器提交数据获得方式相同。 18、国际性 简单设置属性就可实现本地化, 例如缺省中文的打印标题都可以设置成自己的本地语言。 19、环境 咖啡报表组件可以用于VB、VC、DELPHI、PB、.NET等FOR WINDOWS语言的二次开发报表组件。 也可以嵌入到jsp、asp实现WEB方式的开发,报表CAB包只有800K多一点 请发邮件到:happymfc@sina.com 索取注册码 服务方式: QQ号:coffeeReport@yahoo.cn MSN :coffeeReport@hotmail.com 邮箱:coffeeReport@yahoo.cn

28,390

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧