2012-10-16 50 views
1
<div data-role="navbar"> 
     <ul> 
      <li><a id="navBtnThirty" href="@Url.Action("View", "VesselLogs", new { id = @ViewContext.ViewData["VesselGID"], ShowDays = 30})" class="navbarbtn ui-btn-active ui-state-persist">30 Days</a></li> 
      <li><a id="navBtnSixty" href="@Url.Action("View", "VesselLogs", new { id = @ViewContext.ViewData["VesselGID"], ShowDays = 60 })" class="navbarbtn" >60 Days</a></li> 
      <li><a id="navBtnNinty" href="@Url.Action("View", "VesselLogs", new { id = @ViewContext.ViewData["VesselGID"], ShowDays = 90 })" class="navbarbtn" >90 Days</a></li> 
      <li><a id="navBtnAll" href="@Url.Action("View", "VesselLogs", new { id = @ViewContext.ViewData["VesselGID"], ShowDays = -1 })" class="navbarbtn" >All Days</a></li> 
     </ul> 
    </div> 

活動按鈕正確顯示頁面第一次加載的時間。在點擊其中一個鏈接之後,直到動作完成後纔會設置激活按鈕,然後再次點擊該按鈕。JQuery Mobile和ASP.NET MVC導航欄按鈕活動狀態不起作用

+0

看起來硬編碼到我,使用一些邏輯在行動,以確定哪一個要被設置的視圖負載時爲活動狀態。 –

回答

0

字符串語法看起來不對我。我敢打賭,有一些編譯錯誤。在你的href屬性標籤中,刪除裏面的雙引號,並用單引號替換。

<div data-role="navbar"> 
    <ul> 
     <li><a id="navBtnThirty" href="@Url.Action('View', 'VesselLogs', new { id = @ViewContext.ViewData['VesselGID'], ShowDays = 30})" class="navbarbtn ui-btn-active ui-state-persist">30 Days</a></li> 
     <li><a id="navBtnSixty" href="@Url.Action('View', 'VesselLogs', new { id = @ViewContext.ViewData['VesselGID'], ShowDays = 60 })" class="navbarbtn" >60 Days</a></li> 
     <li><a id="navBtnNinty" href="@Url.Action('View', 'VesselLogs', new { id = @ViewContext.ViewData['VesselGID'], ShowDays = 90 })" class="navbarbtn" >90 Days</a></li> 
     <li><a id="navBtnAll" href="@Url.Action('View', 'VesselLogs', new { id = @ViewContext.ViewData['VesselGID'], ShowDays = -1 })" class="navbarbtn" >All Days</a></li> 
    </ul> 
</div> 

編輯:

完全是我不好。我沒有想到你在你的href中有剃刀語法。現在只注意到'@'符號。

+0

不,頁面寫入時不起作用。 – user1751121

0

下面的代碼解決了這個問題,一定要改變什麼jquery移動事件綁定這對你的特定設置。

$(document).bind('pageshow', 
    function() { 
     var days = @ViewContext.ViewData["ShowLogs"]; 
     $('.navbarbtn').removeClass("ui-btn-active"); 
     if (days == 30) { 
      $('#navBtnThirty').addClass("ui-btn-active"); 
     } else if (days == 60) { 
      $('#navBtnSixty').addClass("ui-btn-active"); 
     } else if (days == 90) { 
      $('#navBtnNinty').addClass("ui-btn-active"); 
     } else if (days == -1) { 
      $('#navBtnAll').addClass("ui-btn-active"); 
     } 
    }); 
</script>