母版頁提供版面一致性,複合控件封裝可重用 UI 邏輯。本文示範純前端 JavaScript + CSS 實作分頁籤效果,無需伺服器端控件,輕量且相容性佳。
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="JavaScriptMenu.aspx.cs" Inherits="JavaScriptMenu" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="https://www.w3.org/1999/xhtml">
<head runat="server">
<title>JavaScript 實現的選項卡式效果</title>
<script type="text/javascript">
function Show_Sub(id_num, num, obj) {
for (var i = 0; i <= 9; i++) {
var tab = document.getElementById("tabb" + id_num + i);
var sub = document.getElementById("subb" + id_num + i);
if (tab) tab.className = 'guide2';
if (sub) sub.style.display = 'none';
}
var curTab = document.getElementById("tabb" + id_num + num);
var curSub = document.getElementById("subb" + id_num + num);
if (curTab) curTab.className = 'guide1';
if (curSub) curSub.style.display = 'block';
}
function GetObj(objName) {
return document.getElementById(objName) || document.all[objName];
}
</script>
<style type="text/css">
.guide1 { cursor:pointer; color:#003399; background:#3399FF; font-weight:bold; border-right:1px solid #A2C0FE; height:25px; line-height:25px; }
.guide2 { cursor:pointer; border-right:1px solid #A2C0FE; line-height:25px; }
.pad5 { padding:5px; } .t { border-top:1px solid #A2C0FE; }
.b { border-bottom:1px solid #A2C0FE; } .l { border-left:1px solid #A2C0FE; }
.r { border-right:1px solid #A2C0FE; }
</style>
</head>
<body>
<form id="form1" runat="server">
<div>
<%= GetUserPanel(0) %>
</div>
</form>
</body>
</html>
public partial class JavaScriptMenu : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e) { }
protected string GetUserPanel(int id_num)
{
StringBuilder sb = new StringBuilder();
sb.Append("");
// 頁籤標題列
for (int i = 0; i < 5; i++)
{
string cls = (i == 0) ? "guide1" : "guide2";
sb.Append($"頁籤 {i+1} ");
}
sb.Append(" ");
// 內容區塊
for (int i = 0; i < 5; i++)
{
string display = (i == 0) ? "block" : "none";
sb.Append($"");
sb.Append($"頁籤 {i+1} 內容區塊
");
sb.Append("這裡可以放置任何伺服器控件、User Control 或靜態 HTML。
");
sb.Append("");
}
sb.Append("
");
return sb.ToString();
}
}
純前端 JS+CSS 實作分頁籤簡單高效,配合伺服器端動態產生 HTML,可滿足大多數 Tab UI 需求。若專案已引入前端框架,建議改用框架元件以獲得更完整的互動體驗與無障礙支援。