2010-08-10 4 views
1

변경하는 가장 좋은 방법 : 뒤에 내 코드에서ASP.net을 감안할 때 링크

<div class="subMenu"> 
    <a href="products.aspx" class="subLink">Products</a> <a href="productCats.aspx" class="subLink">Categories</a> <a href="example.aspx" class="subLink">Another</a> 
</div> 

을 어떻게 프로그래밍 방식으로 그 DIV 링크 목록을 변경 것인가? 단지 배우려고 노력하고, 단순 죄송

if(menuID == 0) { 
    // Display some links here 
}else if(menuID == 1) { 
    // Display some links here 
}else if(menuID == 2) { 
    // Display some links here 
} 

: 내 코드에서

나는의 라인을 따라 뭔가있을 것 뒤에.

답변

1

Panel 컨트롤을 사용하고 내부에 하이퍼 링크를 추가해야한다고 생각합니다.

ASPX 페이지 : 뒤에

<asp:Panel ID="TestPanel" CssClass="Submenu" runat="server"> 
</asp:Panel> 

코드 :

switch (menuId) 
    { 
     case 0: 
      TestPanel.Controls.Add(new HyperLink { Text = "Test", NavigateUrl = "testUrl", CssClass="Sublink" }); 
      TestPanel.Controls.Add(new HyperLink { Text = "Test2", NavigateUrl = "testUrl2", CssClass = "Sublink" }); 
      break; 
     case 1: 
      TestPanel.Controls.Add(new HyperLink { Text = "xxx", NavigateUrl = "xxx", CssClass="Sublink" }); 
      TestPanel.Controls.Add(new HyperLink { Text = "xxx", NavigateUrl = "xxx", CssClass = "Sublink" }); 
      break; 
     case 2: 
      TestPanel.Controls.Add(new HyperLink { Text = "xxx", NavigateUrl = "xxx", CssClass = "Sublink" }); 
      TestPanel.Controls.Add(new HyperLink { Text = "xxx", NavigateUrl = "xxx", CssClass = "Sublink" }); 
      break; 
     default: 
      break; 
    } 
0

하는 간단한 방법 :

<div class="subMenu"> 
    <%= myLinks %> 
</div> 



if(menuID == 0) { 
    myLinks = "<a href='products.aspx' class='sublink'>Products</a>etc.. etc.. " 
}else if(menuID == 1) { 
    myLinks = "<a href='products.aspx' class='sublink'>Products</a>etc.. etc.. " 
}else if(menuID == 2) { 
    myLinks = "<a href='products.aspx' class='sublink'>Products</a>etc.. etc.. " 
} 

추가 : 클래스 정의 아래

Protected myLinks as string = "" 

.

+0

감사합니다, 어디 myLinks 변수가 정의? –

+0

@Tom 리터럴 컨트롤을 ASPX 페이지에 다음과 같이 추가하십시오.

0

나는 이것이 가장 좋은 방법은 알고하지 않습니다 -하지만 방법 :

[Serializable] 
public class MyLinks 
{ 
    public string cLink; 
    public string cTitle; 
} 

public partial class Dokimes_StackOverFlow_AplesDokimes : System.Web.UI.Page 
{ 
    MyLinks [] MyLinksAre = { 
      new MyLinks{cLink = "products.aspx", cTitle = "products"}, 
      new MyLinks{cLink = "ProductCat.aspx", cTitle = "catalog"}, 
      new MyLinks{cLink = "Paradeigma.aspx", cTitle = "example"}, 

    }; 


    protected void Page_Load(object sender, EventArgs e) 
    { 
     StringBuilder sRenderOnMe = new StringBuilder(); 
     int menuID = 0; 
     switch (menuID) 
     { 
      case 0: 
       foreach (int i in new int[] { 0, 1 }) 
        sRenderOnMe.AppendFormat("<a href=\"{0}\">{1}</a>", MyLinksAre[i].cLink, MyLinksAre[i].cTitle); 
       break; 


      default: 
       foreach (int i in new int[] { 0, 1, 2 }) 
        sRenderOnMe.AppendFormat("<a href=\"{0}\">{1}</a>", MyLinksAre[i].cLink, MyLinksAre[i].cTitle); 
       break; 
     } 

     txtMenouRender.Text = sRenderOnMe.ToString(); 
    } 
} 

온 페이지

<asp:Literal runat="server" ID="txtMenouRender"></asp:Literal> 
2

약간 더 복잡한 방법 : 다음

<asp:repeater id="rptMenu" runat="server"> 
    <itemTemplate> 
    <a href='<%# Eval("LinkUrl") %>' class="subLink"><%# Eval("LinkName") %></a> 
    <itemTemplate> 
</asp:repeater> 

그리고 백 엔드에있는 링크의 목록을 구축하고 리피터에 바인딩합니다.

public class MenuItem 
{ 
    public string LinkUrl { get; set; } 
    public string LinkName { get; set; } 
} 

public void Page_Load() 
{ 
    //GetMenuItems would populate this list, depending on your logic 
    List<MenuItem> menuItems = GetMenuItems(menuId); 
    rptMenu.DataSource = menuItems; 
    rptMenu.DataBind() 
} 

이렇게하면 데이터베이스에서이 기능을 사용할 수 있고 필요한 경우 쉽게 출력을 편집 할 수 있다는 이점이 있습니다.

+0

링크 목록이 향후 변경 될 가능성이 높으면 유연성이 향상됩니다 . –

+0

실제로. 이것은 아마도 장기적으로 적은 코드를 작성하는 것을 의미합니다. – Paddy

0

간단한 href 태그 또는 일부 asp.net 컨트롤을 원하십니까? 또한 넣을 수 있습니다

<div class="subMenu"> 
<% if(menuID == 0) { %> 
    <a href="products.aspx" class="subLink">Products</a> 
<% } else if(menuID == 1) { %> 
    <a href="productCats.aspx" class="subLink">Categories</a> 
<% } else { %> 
    <a href="example.aspx" class="subLink">Another</a> 
<% } %> 
</div> 

관리 :

<div class="subMenu"> 
<% if(menuID == 0) { %> 
    <asp:LinkButton ID="Test" runat="server" OnClick="Test_OnClick" class="subLink">Products</LinkButton> 
<% } else if(menuID == 1) { %> 
    <a href="productCats.aspx" class="subLink">Categories</a> 
<% } else { %> 
    <a href="example.aspx" class="subLink">Another</a> 
<% } %> 
</div>