无非是做一些类似 Tab标签 的图片,排在一起,被选中的图片底色要亮一些(每个tab图片做两张),并把图片做成链接,可以点击。图片下面是<table></table>,显示数据。
当用户单击某个 Tab标签 图片时,刷新当前页面,在table里显示对应与Tab的数据即可。要注意的是,刷新完页面之后,用户刚才点击的那个Tab图片是高亮的。
当用户单击某个 Tab标签 图片时,刷新当前页面,在table里显示对应与Tab的数据即可。要注意的是,刷新完页面之后,用户刚才点击的那个Tab图片是高亮的。
解决方案 »
- struts2.3.4+spring3.1+mybats帮忙看看这个问题
- 使用jstl怎么在两个页面间传值
- 关于用jsp开发mssql的问题
- 怎么给APPLET传递参数.
- 雪中送碳!!!!
- 北美ERP公司诚聘JAVA/WEB开发人才(J2EE/JSP等)
- ~~~~~~~~~~在线等待一天都没有解决的问题~~~~~~~~~~
- 关于Date类
- 哪位热心人可以帮我说说前台用JSP后台用ACCESS做一个项目的过程和注意事项啊。
- 在ie5.5中下载安装支持swing的plug-in时出现错误!
- EJB3.0和EJB2.0差异极大,现在学EJB2.0合适吗?
- 问一下那位大哥知道 <<java编程思想>>的代码盘在哪有
http://blog.csdn.net/_chage/archive/2004/12/14/215494.aspx如果你这个tab菜单被多处用到,即这个东东有重用的价值,建议使用tiles或struts-menu这样的组件。
我就知道你肯定是要代码的,另存为对你来说应该不难吧。
如果要设返回的话得用一下javascript
<?IMPORT NAMESPACE="TSNS" IMPLEMENTATION="tabstrip.htc" />
<TSNS:TabStrip id="operTab" SepDefaultSytle="width:10px;border-bottom:solid 1px #dddddd" selectedIndex="0" targetID="mpgPages" tabDefaultStyle="width:90px;border:solid 1px #dddddd;background:#ffffff;padding:5px;" tabHoverStyle="color:red;" tabSelectedStyle="background:#efefef;border-bottom:none;">
<TSNS:Tab>第一页标题</TSNS:Tab>
<TSNS:TabSeparator />
<TSNS:Tab>第二页标题</TSNS:Tab>
</TSNS:TabStrip>
<?XML:NAMESPACE PREFIX="MPNS" />
<?IMPORT NAMESPACE="MPNS" IMPLEMENTATION="multipage.htc" />
<MPNS:MultiPage id="mpgPages" style="background-color:#EFEFEF;border-style:Solid;height:550px;width:650px;BORDER-RIGHT: #dddddd 1px solid; BORDER-TOP: medium none; BORDER-LEFT: #dddddd 1px solid; BORDER-BOTTOM: #dddddd 1px solid; 10px: ">
<MPNS:PageView>第一页内容</MPNS:PageView>
<MPNS:PageView>第二页内容</MPNS:PageView>
</MPNS:MultiPage>
multipage.htc
--><public:component tagName="MultiPage" lightweight="true">
<public:property name="selectedIndex" get="GetPageIndex" put="SetPageIndex" persist="true" value="0" id="propSelectedIndex" />
<public:property name="numPages" get="NumPages" id="propNumPages" />
<public:method name="createPageAt" internalname="f_CreatePageAt" />
<public:event name="onselectedindexchange" id="evtPageChange" />
<public:attach event="oncontentready" onevent="Init()" />
<public:defaults
tabStop="false"
contentEditable="false"
canHaveHTML="true"
viewInheritStyle="true"
viewMasterTab="false"
viewLinkContent="false"
style="display:block;visibility:hidden;overflow:auto"
/>
<script language="JScript">
var _PageIndex = null;
var _bInitProcess;
function f_CreatePageAt(index)
{
var numPages = NumPages();
if ((index < 0) || (index > numPages))
index = numPages;
var page = element.document.createElement("PageView");
page.style.display = "none";
page.attachEvent("onpropertychange", OnPropertyChange);
if (index == numPages)
{
element.appendChild(page);
}
else
{
element.children[index].insertAdjacentElement("beforeBegin", page);
}
if (index <= _PageIndex)
{
_bInitProcess = true;
SetPageIndex(_PageIndex + 1);
_bInitProcess = false;
}
if (!_bInitProcess)
{
propNumPages.fireChange();
if (_PageIndex < 0)
SetPageIndex(0);
}
return page;
}
function OnPropertyChange()
{
if (event.propertyName.toLowerCase() == "activate")
{
var oNode = event.srcElement;
var bActivate = oNode.getAttribute("activate");
if ((bActivate != null) && (bActivate))
{
SetPageIndex(ConvertPageToIndex(oNode));
}
}
}
function Init()
{
_bInitProcess = true;
ProcessContent();
var initIndex;
if (numPages == 0)
initIndex = -1;
else if ((_PageIndex == null) || (_PageIndex == "") || (_PageIndex < 0) || (_PageIndex >= numPages) || (GetPage(_PageIndex) == null))
initIndex = 0;
else
initIndex = _PageIndex;
_PageIndex = -1;
SetPageIndex(initIndex);
defaults.style.visibility = "inherit";
_bInitProcess = false;
}
function ProcessContent()
{
for (var nIndex = 0; nIndex < element.childNodes.length; nIndex++)
{
var node = element.childNodes[nIndex];
if ((node.tagName != null) && (node.tagName.toLowerCase() == "pageview"))
{
node.style.display = "none";
node.attachEvent("onpropertychange", OnPropertyChange);
}
else
{
node.removeNode(true);
nIndex--;
}
}
}
function NumPages()
{
return element.childNodes.length;
}
function GetPage(nIndex)
{
if ((nIndex == null) || (nIndex < 0) ||
(nIndex >= element.childNodes.length))
return null;
return element.childNodes[nIndex];
}
function ConvertPageToIndex(page)
{
for (var nIndex = 0; nIndex < element.childNodes.length; nIndex++)
{
var node = element.childNodes[nIndex];
if (node.uniqueID == page.uniqueID)
return nIndex;
}
return -1;
}
function GetPageIndex()
{
return _PageIndex;
}
function SetPageIndex(value)
{
if (_PageIndex == value)
return;
var page = GetPage(value);
var prevPage = GetPage(_PageIndex);
if ((_PageIndex == null) || (page != null))
_PageIndex = value;
if (page == null)
return;
if (prevPage != null)
{
prevPage.style.display = "none";
}
page.style.display = "block";
if (!_bInitProcess)
{
var oEvent = CreatePageEvent(value, page);
evtPageChange.fire(oEvent);
}
if (!_bInitProcess)
propSelectedIndex.fireChange();
}
function CreatePageEvent(index, page)
{
oEvent = createEventObject();
oEvent.selectedIndex = index;
oEvent.page = page;
return oEvent;
}
</script>
</public:component>
太长了,发不了,要的话给邮箱地址