2009-05-22 44 views
2

我正在使用ASP.NET MVC,并希望根据HtmlHelper.DropDownList的选定值更新我的页面上的内容。我有一个管理页面,我想在其中显示给定学期的雇佣员工名单,而不必重定向到其他控制器。也许可以生成一个表或用这些用户填充的ListBox。如何根据HtmlHelper DropDownList的选定值更改我的页面上的内容?

在我的数据库中,我有一个表格,其中包含一个学期的列表,一个包含用户列表的表格,以及另一个表格,其中包含两个与FK相关的字段,将每个学期与所有被聘用的用户相关联。

任何想法?

+0

你想要什么改变你的网页?标题,另一个标签 – TStamper 2009-05-22 01:41:56

+0

我会更新帖子。我想要生成一个表格,或者填充一个列表框。我只需要在页面上获取该名单。 – ChristopherWright 2009-05-22 01:47:08

回答

5

有一个操作会返回包含您的显示标记的PartialViewResult。您的下拉列表将以学期作为文本和关联的数据库键值。将更改处理程序添加到下拉列表中,以便AJAX获取呈现分部视图的操作,并将该学期键值作为url的一部分传递给该方法。将容纳部分视图的容器替换为AJAX查询的结果。

查看

$(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(样本 - IEnumerable类型的)

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

控制器

public ActionResult ListEmployees(int semesterID) 
{ 
    var employees = db.... // query to get employees 
    return PartialView("EmployeeList", employees) 
} 
相关问题