2010-02-23 38 views
1

我有一個網站與MVC,其中有一個在母版頁下拉。 數據庫中的數據鏈接到一年。所以每年我們都會得到一個新的乾淨的數據庫(或從網站上看來,因爲年份發生變化)在主頁上的下拉菜單。如何獲得選定的值正確

下拉框可讓您選擇要編輯/查看/進入的年份。

在Global.asax

我有一個方法:

public static SelectList schooljaarList() { 
     NASDataContext _db = new NASDataContext(); 
     int schooljaarID = (from p in _db.Schooljaars 
          where p.Sch_Schooljaar == SCHOOLJAAR 
          select p.Sch_ID).First(); 
     return new SelectList(_db.Schooljaars.ToList(), "Sch_ID", "Sch_Schooljaar", schooljaarID); 
    } 

這使得下拉選擇列表的,並且設置默認值與當前的一年。

我已經改變了路由,這樣一年總是在URL

routes.MapRoute(
      "Default", // Route name 
      "{schooljaar}/{controller}/{action}/{id}", // URL with parameters 
      new { schooljaar = MvcApplication.SCHOOLJAAR, controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults 
      , new { schooljaar = @"(19|20)\d\d-(19|20)\d\d" } 
     ); 

在母版看到我添加了控制:

<%= Html.DropDownList("schselectr", MVC2_NASTEST.MvcApplication.schooljaarList())%> 

,當有人選擇一年中下拉,我導航到匹配的網址使用jQuery

$(document).ready(function() { 

     $("#schselectr").change(function() { 
      //alert(window.location.pathname); 
      var oldpath = window.location.pathname; 
      // alert($('option:selected', this).text()); 
      var newpath = "http://" + window.location.host + "/" + $('option:selected', this).text().trim() + window.location.pathname.substr(10); 
      //alert(newpath); 
      window.location = newpath; 
     }); 
    }); 

直到這裏一切w獸人。

該URL看起來像這樣:http://localhost:50152/2010-2011/Lesgever 2010-2011是今年。

現在,當我在這個URL。我希望下拉列表中的選定值不會是當前年份,而是網址中可見的年份。

我試過在jQuery的的document.ready功能

 alert(window.location.pathname.substr(1, 9).trim()); 
     document.getElementById("schselectr").value = "2010-2011"; 
     //$("#schselectr").val(window.location.pathname.substr(1, 9).trim()); 

添加以下代碼,但它不工作。 JS不會產生任何錯誤。 我使用的是Firefox。

我的問題:

  • 我如何得到這個工作,該URL的一年將在下拉列表中選擇的項目,即使在MVC使用JavaScript,jQuery的,或最好。

  • 你會如何改進我的工作方法,這個系統。 (又名:中Global.asax的方法,...)

+0

你可以發佈生成的選擇HTML。即做一個視圖源。 – 2010-02-23 11:32:06

回答

1

當您設置選擇框的值,你想將其設置爲可見文本,或背景值。

以下幾點:如果

$("#schselectr").val('2010-2011') 

將工作選擇HTML是像這樣

<select id='schselectr'> 
    <option value='2009-2010'>2009-2010</option> 
    <option value='2010-2011'>2010-2011</option> 
</select> 

但是,如果出來的HTML是:

<select id='schselectr'> 
    <option>2009-2010</option> 
    <option>2010-2011</option> 
</select> 

然後不管用。

你可以發佈生成的選擇HTML。即做一個視圖源。

+0

來源是這樣的: as 1 is the ID。我現在改變了代碼,價值和文字都將「2010-2011」,現在它的工作。謝謝。 – Stefanvds 2010-02-23 12:14:09

+0

那麼你想這樣做嗎?謝謝 :-) – 2010-02-23 13:09:47

相關問題