2012-03-29 64 views
0

我的結構是這樣的: 母版頁 ASPX(Web表單) ASCX(用戶控件)網絡用戶控制改變動態

我有一個師傅帶一個菜單:

<asp:Menu ID="NavigationMenu" runat="server" CssClass="menu" EnableViewState="false" 
       IncludeStyleBlock="false" Orientation="Horizontal"> 
<Items> 
      <asp:MenuItem Text="Parameters" Value="Parameters"> 
        <asp:MenuItem NavigateUrl="~/Default.aspx" Text="Default" Value="def" /> 
    </asp:MenuItem> 
</Items> 
</asp:Menu> 

裏面的MenuItem有一個鏈接到這些用戶控件,我想加載在我的default.aspx

我必須有不同的用戶控件:

用戶控制1:

<%@ Control Language="C#" AutoEventWireup="true" CodeFile="ucTest1.ascx.cs" Inherits="ucTest1" %> 
<table> 
<tr> 
    <td> 
     <asp:Label ID="Label1" runat="server" Text="TEST 1 ASCX"></asp:Label> 
    </td> 
</tr> 
<tr> 
    <td> 
     <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> 
    </td> 
</tr> 
</table> 

用戶控制2:

<%@ Control Language="C#" AutoEventWireup="true" CodeFile="ucTest2.ascx.cs" Inherits="ucTest2" %> 
<table> 
<tr> 
    <td> 
     <asp:Label ID="Label2" runat="server" Text="TEST 2 ASCX"></asp:Label> 
    </td> 
</tr> 
<tr> 
    <td> 
     <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox> 
    </td> 
</tr> 
</table> 

,這裏是我的Default.aspx

<%@ Page Title="" Language="C#" MasterPageFile="~/Master/Site.master" AutoEventWireup="true" 
CodeFile="Default.aspx.cs" Inherits="Default" %> 
<%@ Register Src="~/ucTest1.ascx" TagName="ucTest1" TagPrefix="uc1" %> 
<asp:Content ID="Content1" ContentPlaceHolderID="MainContent" runat="Server"> 
    <uc1:ucTest1 ID="ucTest1" runat="server" /> 
</asp:Content> 

它的工作好爲止,但我想就這些的菜單項我的母版頁在相同的Default.aspx中在這兩個用戶控件之間切換。 所以當我點擊test1-menuitem時,它會將ucTest1帶入我的default.aspx,當點擊test2-menuitem時,我也會將uctest2帶入我的default.aspx。

我不知道這是否可以做到。我真的很感謝你的幫助!

謝謝!

回答

1

我會使用QueryString來確定顯示哪個用戶控件。例如:

<asp:MenuItem NavigateUrl="~/default.aspx?uc=test" ...> 

設置用戶控制,以虛假的默認可見性,並在Page_Load使用一點邏輯來決定哪個應該是可見的:

protected void Page_Load(object sender, EventArgs e) 
{ 
    if (!Page.IsPostBack) 
    { 
     switch (UserControlType) 
     { 
      case "test": 
       ucTest1.Visible = true; 
      ... 
     } 
    } 
} 

private string UserControlType 
{ 
    get { return Request.QueryString["uc"]; } 
} 
+0

太感謝你了,它的作品精彩=) – James 2012-03-29 16:54:21

+0

非常歡迎。真高興你做到了 :-) – 2012-03-29 17:03:46