这一篇来把上一篇范例订单项目
的名称
改为下拉选单的项目
下拉选单要使用套件 jQuery UI Selectmenu
把 OrderItem Name Property 改为以下 Property
...
/// <summary>
/// 订单项目编号
/// </summary>
[Display(Name = "订单项目编号")]
public int? OrderItemId { get; set; }
...
建立取得订单项目
清单 method
private Option[] GetOrderItems()
{
return new Option[]
{
new() { Value = 1, Text = "系统重灌" },
new() { Value = 2, Text = "交通费" },
new() { Value = 3, Text = "客制化服务" },
};
}
Get Case01 Action
[HttpGet]
public IActionResult Case01()
{
// 给定下拉选单所有订单项目
ViewBag.OrderItemsJson = GetOrderItems().ToJson();
...
// 把范例简单化,预先给定既有的资料
var vm = new ViewModel
{
Items = new OrderItem[]
{
new () { OrderItemId = 1, UnitPrice = 600, Quantity = 1},
new () { OrderItemId = 2, UnitPrice = 300, Quantity = 1},
new () { OrderItemId = 3, UnitPrice = 1000, Quantity = 1},
new (),
},
};
return View(vm);
}
把订单项目标题的名称
,改为项目
<th>
<label>项目</label>
</th>
把订单项目名称
input 改为绑定至订单项目编号
下拉选单给定所有的订单项目
额外建立一个自订的 attribute item-index
来存放订单项目
的 index
订单项目编号
<td>
<select name="select-menu"
v-bind:item-index="index"
v-model="item.OrderItemId">
<option value="null">请选择</option>
<option v-for="order_item in order_items"
v-bind:value="order_item.Value" >
{{ order_item.Text }}
</option>
</select>
</td>
vue
订单项目
const order_items = @(Html.Raw(ViewBag.OrderItemsJson));
onMounted(() => {
$('[name="select-menu"]').selectmenu({
width: 200,
select: function (event, ui) {
// 从 item-index 取出 Items 内对应的 Item
const item_index = event.target.attributes.getNamedItem('item-index').value;
const item = vue_model.value.Items[parseInt(item_index)];
// 更新其 OrderItemId
item.OrderItemId = parseInt(ui.item.value);
}
});
})
return {
order_items,
}
这篇先到这里,下一篇来看看把 jQuery UI Selectmenu 放到 Vue Component 内 !
<<: Day 12 AWS云端实作起手式第二弹 开始拼拼图吧
为什麽要使用Bootstrap? 现在的网页为了能够适应不同装置,会进行响应式设计;并且大多考量到使...
InstagramManager class InstagramManager { private ...
CSS中语法有着三大特性 分别为: 层叠性、继承性、优先性 1. 层叠性 若是设置给相同选择器相同的...
前言:今天要来实作数制转换、括号匹配和河内塔,这三个范例都是非常知名的堆叠应用,甚至会是程序竞赛的考...
Decorator是什麽? Python Decorator 机制是为了让你在定义函式与方法之後,...