0

在这里,我有一个下拉列表和一个列表框。我已经使用 DbContext 检索数据并使用控制器中的 Viewbag 为下拉列表绑定数据并显示。直到这里它工作正常。

我的控制器..

public ActionResult Index()
        {
            ViewBag.StudentList = new SelectList(db.Students, "StudentID", "StudentName");          
            return View();
        }

我的观点..

@using (Html.BeginForm())
{    
    @Html.ValidationSummary(true)
    <div>
     @Html.DropDownList("StudentList", "-Select-")
     <br/>
      @Html.ListBox("StudentMarks", new SelectList(""))
     <p>
          <input type="submit" value="Save" />
     </p>
    </div>
}

现在的问题是我需要根据下拉列表选择值中选择的值将数据绑定到列表框。最初,这里是一个空的列表框。

任何人都可以帮助我。

提前致谢

4

2 回答 2

0

您应该在“onchange”事件中从 StudentList 中获取选定的键,然后将其传递给服务器并获取列表框值,然后使用 javascript 为列表框的选择创建“选项”

于 2012-10-17T06:29:57.947 回答
0

首先为下拉列表编写一个更改事件,例如,

$('#StudentList').change(function(){

var selecteditem=$('#StudentList').val();
$.ajax({
url:'Controller/Action',
type:'POST',
data:{id:selecteditem},
cache:false,
success:function(data){
var lstItems=[];
foreach(var i=0;i<data.length;i++)
{
lstItems.push('<option value="'+data.Field1+'">data.Field2</option>');
}
$('#StudentMarks').empty();
$('#StudentMarks').append(lstItems);
}
});
});

你的动作看起来像,

[HttpPost]
public ActionResult Action(string id)
{
// get all data by the student id.
return Json(listMarks,JsonRequestBehavior.Allow.Get);
}

这对你有用。

于 2012-10-17T08:31:46.207 回答