2012-12-17 29 views
-1

我正在使用asp:菜單。我的aspx代碼:如何顯示一些東西在同一頁面,而不是重定向到另一個頁面,同時點擊asp:菜單的子菜單?

<body> 
    <form id="form1" runat="server"> 
    <div> 
     <asp:Menu ID="Menu_Library" runat="server"> 
     </asp:Menu> 

    </div> 
    </form> 
</body> 

我生成子菜單項(IE)的childitems動態..如果我點擊它重定向我的子菜單項,而我在我的代碼指定這樣後面的頁面,

MenuItem childItem = new MenuItem(); 
childItem.NavigateUrl = "OtherPage.aspx"; 

但我需要的是當我點擊子菜單項,它應該顯示在同一頁面的一些項目..

如何實現這一目標?請幫助我..它可以在JavaScript或代碼後面..我不希望它導航到另一個頁面,而是執行相同的頁面中的動作..

回答

1

而不是使用頁面鏈接,你可以使用JavaScript的和任何div你可以顯示或隱藏它。

代碼:

MenuItem childItem = new MenuItem(); 
childItem.NavigateUrl = "OtherPage.aspx"; 

變化有:

MenuItem childItem = new MenuItem(); 
childItem.NavigateUrl = "javascript: return GoToSomeLink('"+ count +"');"; //You can pass parameters also 

JavaScript函數:

<script type="text/javascript"> 
function GoToSomeLink(obj) //if parameters are used use them here also. 
{ 
    var count=parseInt(obj); //use this count varible anywhere in the function 
    $(#menuDiv).show(); /any div show or hide 
    return false; 

} 
</script> 
+0

我應該在哪裏包含這個javascript函數..? – Xavier

+0

在腳本標籤下的ASPX頁面中。 – Pratik

+0

我已經包含在aspx ..但它扔我腳本錯誤..返回語句功能 – Xavier

0

您可以使用load()ajax() jquery方法動態加載內容而不刷新頁面。

或者你可以隱藏相關內容內嵌和顯示/隱藏他們使用toggle()方法

+0

亞..但我怎麼能拿子菜單項的點擊.. – Xavier

+0

是您可以將點擊偵聽器添加到子菜單列表項 –

0

您可以使用jquery.load方法如下

var a = this.find(".contentWrap"), 
a.load(this.getTrigger().attr("href") + " .ajaxDiv"); 

的想法是這樣的

  1. 把任何css-class放到你想要加載另一個頁面的每個菜單/子菜單上,說ajaxMenu。
  2. 通過您的代碼設置菜單/子菜單的網址。
  3. 用css-class創建一個容器div(conetntWrap)
  4. 在你想要加載的每個頁面上創建一個容器div .ajaxDiv。這很重要,因爲它不會將_viewstate加載到您的頁面。
  5. 現在的document.ready寫一個函數如下

    $(document).ready(function() 
    { 
        $("a.ajaxMenu").live("click", function (a) 
        { 
         var a = this.find(".contentWrap"), 
         a.load(this.getTrigger().attr("href") + " .ajaxDiv"); 
        }); 
    )}; 
    

    * ---使用類的asp.net *

    <asp:Menu ID="NavigationMenu" 
        StaticMenuStyle-CssClass="StaticMenuStyle" 
        StaticMenuItemStyle-CssClass="StaticMenuItemStyle" 
        StaticSelectedStyle-CssClass="StaticSelectedStyle" 
        StaticHoverStyle-CssClass="StaticHoverStyle" 
        runat="server"> 
    </asp:Menu> 
    

    以上的方法來添加CSS CLASSE。

+0

什麼是contentWrap?我沒有使用過任何類。我需要處理的東西點擊子菜單項..如何做到這一點 – Xavier

+0

我編輯了我的答案,這只是一個想法 –

+0

我生成子菜單動態..所以我不能添加一個css類到它 – Xavier

相關問題