2009-05-22 6 views
2

Ich verwende ASP.NET MVC und möchte Inhalte auf meiner Seite basierend auf dem ausgewählten Wert einer HtmlHelper.DropDownList aktualisieren. Ich habe eine Admin-Seite, auf der ich eine Liste der angestellten Mitarbeiter für ein bestimmtes Semester anzeigen möchte, ohne auf einen anderen Controller umleiten zu müssen. Vielleicht könnte eine Tabelle generiert oder eine ListBox mit diesen Benutzern gefüllt werden.Wie kann ich Inhalt auf meiner Seite basierend auf dem ausgewählten Wert einer HtmlHelper DropDownList ändern?

In meiner Datenbank habe ich eine Tabelle mit einer Liste von Semestern, eine Tabelle mit einer Liste von Benutzern und eine weitere Tabelle mit zwei FK-bezogenen Feldern, die jedes Semester mit allen Benutzern verbindet, die dafür eingestellt werden.

Irgendwelche Ideen?

+0

was Sie wollen auf deiner Seite ändern? ein Titel, ein anderes Tag – TStamper

+0

Ich werde den Beitrag aktualisieren. Ich möchte eine Tabelle generieren oder vielleicht eine Listbox füllen. Ich muss diese Liste nur auf der Seite finden. – ChristopherWright

Antwort

5

Haben Sie eine Aktion, die ein PartialViewResult zurückgibt, das die Markierung Ihrer Anzeige enthält. Ihre Dropdown-Liste enthält das Semester als Text und den zugehörigen Datenbankschlüssel als Wert. Fügen Sie der Dropdownliste einen Änderungshandler hinzu, der eine AJAX-Anweisung an die Aktion abruft, die die Teilansicht rendert und den Semesterschlüsselwert als Teil der URL an die Methode übergibt. Ersetzen Sie den Container, der die Teilansicht enthalten soll, durch die Ergebnisse der AJAX-Abfrage.

Ansicht

$(function() { 
    $('#SemesterSelect').change(function() { 
     $.get('<%= Url.Action('ListEmployees') %>/' + $(this).val(), function(data) { 
     $('#EmployeeList').html(data); 
     }, 
     'html'); 
    }); 
}); 


<%= Html.DropDownList("SemesterSelect", 
         (IEnumerable<SelectListItem>)ViewData["Semesters"]) %> 

<div id="EmployeeList"></div> 

PartialView (Probe - vom Typ IEnumerable)

<ul> 
<% foreach (var employee in Model) 
    { %> 
     <li> <%= employee.Name %> </li> 
<% } %> 
</ul> 

-Controller

public ActionResult ListEmployees(int semesterID) 
{ 
    var employees = db.... // query to get employees 
    return PartialView("EmployeeList", employees) 
} 
+0

Genau das habe ich gesucht! Danke eine Million = D – ChristopherWright