1. 程式人生 > >在asp.net網頁中實現tabPage功能(上)

在asp.net網頁中實現tabPage功能(上)

  我是個.net新手,所以我寫的東西在好些高手們看來似乎比較粗淺,還請大家海涵!並希望大家多多指導、多提意見,我會十分感激的,謝謝!

  前幾天在做一個專案時,專案經理非要讓我在asp.net網頁中實現類似Windows Form程式中類似TabControl(TabPage)那樣的功能,但大家都知道,asp.net中是不提供這種控制元件的,那如何實現呢?

  第一種方法是用Menu控制元件+MultiView控制元件實現:

  第一步是在網頁中拖入一個Menu控制元件,編輯一下專案,並設定一下它的屬性通常要把Orientation屬性設為Horizontal,每加入一個Item,建議把它的Value設為一個數字,比如1,2,3……,這樣方便我們後面的程式設計:

 

   第二步是在網頁中拖入一個MultiView控制元件(注意它的css定位屬性一定要是相對定位,relative!),它實際上是View控制元件的容器:

 

  第三步是往MultiView控制元件裡面拖入若干個View控制元件,每個View控制元件都相當於一個頁面,我們可以像編輯普通頁面那樣編輯每一個View:

 至此,網頁的原型已經做好了,它的原始碼如下:

<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
>


<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    
<title>tabPage</title>
</head>
<body>
    
<form id="form1" runat="server">
    
<div>
        
<asp:Menu ID="Menu1" runat="server" BackColor="#E3EAEB" DynamicHorizontalOffset="2"
            Font-Names
="Verdana" Font-Size="0.8em" ForeColor="#666666" Orientation="Horizontal"
            StaticSubMenuIndent
="10px" Style="position: relative" Width="801px" OnMenuItemClick="Menu1_MenuItemClick">
            
<StaticSelectedStyle BackColor="#1C5E55"/>
            
<StaticMenuItemStyle HorizontalPadding="5px" VerticalPadding="2px"/>
            
<DynamicHoverStyle BackColor="#666666" ForeColor="White"/>
            
<DynamicMenuStyle BackColor="#E3EAEB"/>
            
<DynamicSelectedStyle BackColor="#1C5E55"/>
            
<DynamicMenuItemStyle HorizontalPadding="5px" VerticalPadding="2px"/>
            
<StaticHoverStyle BackColor="#666666" ForeColor="White"/>
            
<Items>
                
<asp:MenuItem Text="Page 1" Value="1"></asp:MenuItem>
                
<asp:MenuItem Text="Page 2" Value="2"></asp:MenuItem>
                
<asp:MenuItem Text="Page 3" Value="3"></asp:MenuItem>
                
<asp:MenuItem Text="Page N" Value="4"></asp:MenuItem>
            
</Items>
        
</asp:Menu>
    
    
</div>
        
<asp:MultiView ID="MultiView1" runat="server" ActiveViewIndex="0">
            
<asp:View ID="View1" runat="server">
                這是第 1 頁
</asp:View>
            
<asp:View ID="View2" runat="server">
                這是第 2 頁
</asp:View>
            
<asp:View ID="View3" runat="server">
                這是第 3 頁
</asp:View>
            
<asp:View ID="View4" runat="server">
                這是第 N 頁
</asp:View>
        
</asp:MultiView>
    
</form>
</body>
</html>

  接下來需要加入控制頁面跳轉的程式碼,首先我們預設網頁第一次開啟時,Menu的第一項就自動選中,所以要把MultiView1控制元件的ActiveViewIndex屬性設為0,並且把它第一個Item的Selected屬性設為true。

  此外,雙擊Menu1控制元件,新增MenuItemClick事件的程式碼如下:

protectedvoid Menu1_MenuItemClick(object sender, MenuEventArgs e)
    
{
        
switch (Menu1.SelectedValue)
        
{
            
case"1"://這個值是在Menu中加入Item時設定的
{
                    MultiView1.ActiveViewIndex 
=0;
                    
break;
                }

            
case"2":
                
{
                    MultiView1.ActiveViewIndex 
=1;
                    
break;
                }

            
case"3":
                
{
                    MultiView1.ActiveViewIndex 
=2;
                    
break;
                }

            
case"4":
                
{
                    MultiView1.ActiveViewIndex 
=3;
                    
break;
                }

            
default:
                
break;
        }

    }

至此,利用Menu+MultiView實現tabPage功能已經做好了,大家看看它的執行效果:

點選Page N:

從功能的角度來講,tabPage的功能已經實現了。在下篇中,將介紹如何用其它控制元件實現tabPage,歡迎關注!