如何在编辑时显示下拉列表值

时间:2010-08-19 22:49:25

标签: asp.net asp.net-mvc asp.net-mvc-2

这是this Question的问题扩展。

在这里,我可以将下拉列表值添加到Grid ..完美..

例如:在我的下拉列表框中,我有A B C D项目..

当我添加任何项目时,我正在显示网格,我正在重新加载页面。

我的网格有两列,一个是添加Dropdownlist值..另一个是其他一些文本值..

我网格中的每一行都有编辑按钮..

当我点击编辑时,我正在重新加载我的页面以编辑此选定的下拉列表值..

当我点击编辑时,我需要显示我需要在下拉列表中显示的网格中的Dropdownlist值。

以便用户知道他有这个下拉值..

如果有任何身体不能解决我的问题,请告诉我。

感谢

我的控制器代码..

public ActionResult Edit(int? id)
        {
            if (id.HasValue)
            {
               // _viewModel.ObnCategoryTextComponent = _obnRepository.GetObnCategoryById(id.Value);
                 var data = _obnRepository.GetSingle<ObnCategory>(id.Value);
                string selectedValue = data.ObnCategoryName;
                _viewModel.ServiceTypeListAll = new SelectList(_bvRepository.GetAllServiceTypes().OrderBy(n => n.ServiceTypeName), "ServiceTypeName", "ServiceTypeName", selectedValue);
                // _viewModel.Category = data.ObnCategoryName;
            }
            return PartialView("Index",_viewModel);
        }

我的观点是..

 <%=Html.DropDownList("ServiceTypeListAll",Model.ServiceTypeListAll)%>

1 个答案:

答案 0 :(得分:2)

您应该将相应的项目Selected属性设置为true:

public ActionResult Index(int id)
{
    //string selectedValue = "textOfTheSelectedItem";
    string selectedValue = _bvRepository.GetServiceType(id)  // I only guess, that would be your repository access...
    _viewModel.ServiceTypeListAll = new SelectList(_bvRepository.GetAllServiceTypes().ToList().OrderBy(n => n.ServiceTypeName).ToList(), "ServiceTypeName", "ServiceTypeName", selectedValue);
        return View(_viewModel);
}

selectedValue必须与列表中的一个ServiceTypeNames匹配:

对于以下列表,selectedValue必须是“第1项”或“第2项”:

<select>
    <option value="Item 1">Item 1</option>
    <option value="Item 2">Item 2</option>
</select>