2009-12-30 79 views
0

我正在創建一個ASP.NET MVC Web應用程序,並且想使用YUI TabView(因爲我通常喜歡它的默認外觀,並且我使用了其他YUI的東西,所以額外的開銷將會相對較小)在母版頁中呈現一組選項卡。這是我想要的:在ASP.NET MVC應用程序中使用YUI TabView的最佳方式是什麼?

  • 每個選項卡應呈現特定控制器操作的結果。
  • 這些控制器操作中的每一個都會呈現一些HTML和相關的javascript。
  • 最終會有一些應用程序狀態可以管理,但我現在只是忽略了標籤式視圖。

這樣做的最佳方法是什麼?

YUI TabView examples建議每個標籤的內容都在它自己的div中。

<div id="demo" class="yui-navset"> 
    <ul class="yui-nav"> 
     <li><a href="#tab1"><em>Tab One Label</em></a></li> 
     <li class="selected"><a href="#tab2"><em>Tab Two Label</em></a></li> 
     <li><a href="#tab3"><em>Tab Three Label</em></a></li> 
    </ul>    
    <div class="yui-content"> 
     <div id="tab1"><p>Tab One Content</p></div> 
     <div id="tab2"><p>Tab Two Content</p></div> 
     <div id="tab3"><p>Tab Three Content</p></div> 
    </div> 
</div> 

我不想這樣做,因爲我不想一次全部加載所有內容的所有選項卡。我想我想捕捉一些事件,讓我看到正在激活的選項卡,然後重定向到適當的操作。它看起來像標籤‘DATASRC’屬性可以幫助我,所以我建立了一個測試基於其dynamic example

tabView.addTab(new YAHOO.widget.Tab({ 
    label: 'One', 
    dataSrc: '/Home/Action1', 
    cacheData: true, 
    active: true 
})); 

tabView.addTab(new YAHOO.widget.Tab({ 
    label: 'Two', 
    dataSrc: '/Home/Action2', 
    cacheData: true 
})); 

tabView.appendTo('container'); 

這似乎是工作不夠好,在得到的行動,但一個人爲的,這是這是由我的行爲所發出的任何JavaScript似乎並沒有得到正確的評估......也就是說,這種類型的東西不顯示我的警告框:

public ActionResult Action2() 
{ 
    return Content("<script type='text/javascript'>alert('test');</script>"); 
} 

我的具體問題是:

  1. 我是否應該放棄YUI的TabView,因爲它不是這個的最佳選擇?
  2. 我應該抓住TabView的onBeforeTabChange事件並重定向到一個視圖,然後重新呈現母版頁(從而重新呈現TabView),基本上不會對TabView進行Ajax化?
  3. 有沒有一種方法可以使用YUI的TabView並保留ajax行爲,同時讓我的動作腳本代碼正確運行?

回答

0

您的內容將被放置在適當位置的頁面中。它的執行時間很長。你需要類似jQuery的回調函數,在AJAX動作完成後,它會運行你選擇的腳本。爲了提醒您流行,您必須使用原始網頁請求發送。

+0

謝謝...這似乎是合理的,但是在你看來,這是額外的努力讓腳本評估值得這裏的麻煩嗎? – 2009-12-30 23:16:06

相關問題