【问题标题】:How to select the dropdown option in aspx page如何在aspx页面中选择下拉选项
【发布时间】:2014-06-23 22:17:18
【问题描述】:

我有一组预定义的下拉菜单,我需要在 viewdata 对象中选择下拉菜单,但不知道如何在 .aspx 页面中选择选项

我的菜单如下所示

<td headers="Vehicle" style="background-color:#EFF3FB;font-family: Verdana; font-size: 10px;"><select>
  <option value="Car">Car</option>
  <option value="Bus">Bus</option>
  <option value="Lorry">Lorry</option>
  <option value="Truck">Truck</option>
</select>

</td>

这里是ViewData.Model.VehicleDetails.Vehicle 将有需要选择的车辆。但不知道如何在 aspx 页面中选择它。

【问题讨论】:

  • 它是从数据库中填充的,在您填充它的位置显示该操作和代码
  • 嗨,ViewData.Model.VehicleDetails.Vehicle 包含像 Car、Bus、Lorry 等值...这个值来自 DB,它发生在 Linq 中,从控制器我将它传递给 Aspx页面
  • 你想默认选择哪个选项?
  • 无论“ViewData.Model.VehicleDetails.Vehicle”中的值是什么,我都需要选择这个对象
  • 显示你填充它的代码

标签: jquery html asp.net asp.net-mvc asp.net-mvc-3


【解决方案1】:

在你的模式中为列表添加另一个属性:

public class YourModel
{
 public SelectList VehiclesList {get;set;}
 public string SelectedVehicle {get;set;}
}

在行动:

List<SelectListItem> list = new List<SelectListItem>();

list.Add(new SelectListItem{Text="Car",Value="Care"});
list.Add(new SelectListItem{Text="Bus",Value="Bus"});
list.Add(new SelectListItem{Text="Truck",Value="Truck"});

yourModel.VehiclesList = new SelectList(list,"Value","Text", ViewData.Model.VehicleDetails.Vehicle);

在视图中:

<%: Html.DropDownListFor(model => model.SelectedVehicle , Model.VehiclesList)%>

更新:

你也可以这样做:

<%= Html.DropDownList(ViewControlNames.vehicle, 
                   new SelectList(new List<SelectListItem> { 
                                  new SelectListItem{ Text="Car", Value = "car" }, 
                                  new SelectListItem{ Text="Bus", Value = "Bus" }, 
                                  new SelectListItem{ Text="Truck", Value = "Truck" } },"Bus"), 
                                  new { id = ViewControlNames.vehicle, Class = "ShortInputField"})) %>

【讨论】:

  • SelectListItem 在我的 c# 代码中没有得到识别 :(,没有组装 :(
  • 在那个类中添加这个:使用 System.Web.Mvc;
  • 嗨,感谢您的帮助,我正在尝试您的解决方案,但是。我们不能做类似“ { new SelectListItem{ Text="Car", Value = "car" }, new SelectListItem{ Text="Bus", Value = "Bus" }, new SelectListItem{ Text="Truck", Value = "Truck" } }, new { id = ViewControlNames.vehicle, Class = "ShortInputField", "Some attribute to select"})%> 这里我们可以放一些属性直接选择而不用在c#中编写代码??
  • 你可以这样做,但推荐的方式是我告诉你的,你可以这样做设置选定的属性条件
  • 上述方法行不通,我做了轻微的改变 DropDownList(ViewControlNames.vehicle, new List { new SelectListItem{ Text="Car", Value = "car" }, new SelectListItem{ Text =“公共汽车”,值 =“公共汽车”},新 SelectListItem{ 文本 =“卡车”,价值 =“卡车”}},“公共汽车”,新 { id = ViewControlNames.vehicle,类 =“ShortInputField”}))% >。它有效,但存在重复,即列表中始终重复选定的项目。
【解决方案2】:
<select>
<%if (ViewData.Model.Details.ElementAt(i).vehicle == "Car")%>
<%{%>
  <option value="car" selected="selected">car</option>
  <option value="Bus">Bus</option>
  <option value="Lorry">Lorry</option>

<%} %>
<%else if (ViewData.Model.Details.ElementAt(i).vehicle == "Bus")%>
<%{%>
   <option value="car" >car</option>
  <option value="Bus" selected="selected">Bus</option>
  <option value="Lorry">Lorry</option>

<%} %>
<%else if (ViewData.Model.Details.ElementAt(i).vehicle == "Lorry")%>
<%{%>
 <option value="car">car</option>
  <option value="Bus">Bus</option>
  <option value="Lorry" selected="selected">Lorry</option>

<%} %>

</select>

【讨论】:

    猜你喜欢
    • 2013-03-11
    • 1970-01-01
    • 2012-07-10
    • 2023-03-26
    • 2017-03-23
    • 1970-01-01
    • 2018-06-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多