单击“编辑”按钮时,我必须将下拉列表更改为可编辑的文本框。在这里,我的 CSHTML 文件中有一个下拉列表,当我在 DDL 中选择一个值时,文本框会从表中填充相应的值。
这是我的模型
当我使用 ADO.NET 实体将表从数据库连接到 MVC 时,VS 会自动生成此 Plan_S 模型类
public partial class Plan_S
{
public int PlanId_PK { get; set; }
public string PlanNames { get; set; }
public string Hours { get; set; }
public string PlanCost{ get; set;}
上市 }
创建此类是为了列出类 Plan_S
public class PlanViewModel
{
public List<SelectListItem> Plans { get; set; }
}
我的控制器是
public class dropdownController : Controller
{
private PivotEntities db = new PivotEntities();
//
// GET: /dropdown/
public ActionResult Index()
{
var model = new PlanViewModel();
//model.Plan = CurrentPlan; //Replace this with the current plan you're editing
model.Plans = db.Plan_S
.Select(p => new SelectListItem
{
Value = p.Hours,
Text = p.PlanNames
})
.ToList();
return View(model);
}
protected override void Dispose(bool disposing)
{
db.Dispose();
base.Dispose(disposing);
}
}
我的视图文件,用于显示下拉列表、文本框、编辑按钮和保存按钮。
@model Pivot.Models.PlanViewModel
@{
ViewBag.Title = "Index";
}
<h2>Index</h2>
<table>
<tr id="ddl">
<td>@Html.Label("Select Plan : ") </td>
<td>@Html.DropDownList("PlanNames", Model.Plans, "--select--") </td>
</tr>
<tr id="editplan">
<td>@Html.Label("Edit Plan : ")</td>
<td><input id="plannames" type="text" /></td>
</tr>
<tr>
<td>@Html.Label("Hours :")</td>
<td><input id="planHours" type="text" /></td>
</tr>
<tr>
<td>@Html.Label("Edit :")</td>
<td><input id="Button1" type="button" value="Edit" /></td>
</tr>
<tr>
<td>@Html.Label("Save Changes :")</td>
<td><input id="savebutton" type="submit" value="Save" /></td>
</tr>
</table>
<script src="~/Scripts/jquery-1.9.1.js"></script>
<script src="~/Scripts/jquery-1.9.1.min.js"></script>
<script src="~/Scripts/jquery.js"></script>
<script type="text/javascript">
$(function () {
$("[name='PlanNames']").change(function () {
$("#planHours").val($(this).val());
});
$("#plannames").val($(this).val(""));
});
$(document).ready(function () {
$("#editplan").hide();
$("#Button1").click(function () {
$("#ddl").hide();
$("#editplan").show();
});
$("#savebutton").click(function () {
$("#editplan").hide();
$("#ddl").show();
});
});
</script>
我的表 Plan_S 如下所示:
PlanId_PK | PlanNames | Hours | PlanCost
1 Plan1 1hrs $10
2 Plan2 2hrs $20
3 Plan3 3hrs $30
这里我需要的是,从 PlanNmes 中选择下拉列表时。
即)当在 DDL 中选择 Plan2 时,有两个文本框,一个应使用 Hours 中的相应值填充,另一个文本框应从 PlanCost 中填充。
当我单击“编辑”按钮时,下拉菜单和其他两个文本框应转换为可编辑文本框,然后我应编辑计划名称、成本、小时数,然后当我单击“保存”按钮时,应将其保存到 Plan_S。
我正在用 JQuery 尝试这个...
由于我是 MVC 新手,所以我很困惑......
请给我建议......
提前致谢....:)