更新时将所选项目分配给下拉列表 "multiple"
Assigning selected items to drop-down list on update "multiple"
我有一个 HTML.dropdown multiple select2 完美运行。当我保存值时,
但是: 在更新页面上,我必须在下拉列表中显示预先选择的值
代码如下:
<div class="col-md-6 mb-3" id="categorylist">
<p class="mb-1 font-weight-bold text-muted mt-3 mt-md-0">Category*</p>
@Html.DropDownList("pCategory[]", new SelectList(new admin.Models.CategoryModel().getMultipleCategoryBySP(), "cat_id", "cat_name", --placeToProvideSingleIntValue--),
new { @class = " form-control select2-multiple ", @data_toggle = "select2", @multiple = "multiple", @style = "width: 100%;" })
</div>
在上面的代码中,有一个占位符 --placeToProvideSingleIntValue--,我可以在其中放置它显示为预选的单个整数值。
Solution/HELP 要求: 我想将数组传递给它或以其他方式传递多个值。所以它会显示多个预先选择的值。
您必须使用 MultiSelectList 而不是 SelectList。像
@Html.DropDownList("pCategory[]", new MultiSelectList(new admin.Models.CategoryModel().getMultipleCategoryBySP(), "cat_id", "cat_name", --placeToProvideMultipleIntValue--),
new { @class = " form-control select2-multiple ", @data_toggle = "select2", @multiple = "multiple", @style = "width: 100%;" })
Razor-pages(靠近 Blazor thingy :D)是 Microsoft 目前最新和最现代的框架之一,所以我认为您应该尽可能使用标签助手,因为您可以获得
你可以看看示例 here
所以 .cshtml 页面上的标签组件应该看起来很简单,例如:
<select asp-for="pCategory" asp-items="items" multiple class="form-control select2-multiple" style="width: 100%;" data_toggle = "select2"></select>
项目是 MultiSelectList
对象
MultiSelectList items = new MultiSelectList(Categories, "cat_id", "cat_name",
selectedValues);
和 selectedValues
整数数组。
希望它会有所帮助:)
还有一件小事超出了范围。我不认为做这样的事情很好
new admin.Models.CategoryModel().getMultipleCategoryBySP()
在您的客户端。我相信应该做的正确的事情是只将一个平面对象传递给客户端,并将整个业务 logic/conversions/mapping 东西放在后端。
干杯
我有一个 HTML.dropdown multiple select2 完美运行。当我保存值时,
但是: 在更新页面上,我必须在下拉列表中显示预先选择的值
代码如下:
<div class="col-md-6 mb-3" id="categorylist">
<p class="mb-1 font-weight-bold text-muted mt-3 mt-md-0">Category*</p>
@Html.DropDownList("pCategory[]", new SelectList(new admin.Models.CategoryModel().getMultipleCategoryBySP(), "cat_id", "cat_name", --placeToProvideSingleIntValue--),
new { @class = " form-control select2-multiple ", @data_toggle = "select2", @multiple = "multiple", @style = "width: 100%;" })
</div>
在上面的代码中,有一个占位符 --placeToProvideSingleIntValue--,我可以在其中放置它显示为预选的单个整数值。
Solution/HELP 要求: 我想将数组传递给它或以其他方式传递多个值。所以它会显示多个预先选择的值。
您必须使用 MultiSelectList 而不是 SelectList。像
@Html.DropDownList("pCategory[]", new MultiSelectList(new admin.Models.CategoryModel().getMultipleCategoryBySP(), "cat_id", "cat_name", --placeToProvideMultipleIntValue--),
new { @class = " form-control select2-multiple ", @data_toggle = "select2", @multiple = "multiple", @style = "width: 100%;" })
Razor-pages(靠近 Blazor thingy :D)是 Microsoft 目前最新和最现代的框架之一,所以我认为您应该尽可能使用标签助手,因为您可以获得
所以 .cshtml 页面上的标签组件应该看起来很简单,例如:
<select asp-for="pCategory" asp-items="items" multiple class="form-control select2-multiple" style="width: 100%;" data_toggle = "select2"></select>
项目是 MultiSelectList
对象
MultiSelectList items = new MultiSelectList(Categories, "cat_id", "cat_name",
selectedValues);
和 selectedValues
整数数组。
希望它会有所帮助:)
还有一件小事超出了范围。我不认为做这样的事情很好
new admin.Models.CategoryModel().getMultipleCategoryBySP()
在您的客户端。我相信应该做的正确的事情是只将一个平面对象传递给客户端,并将整个业务 logic/conversions/mapping 东西放在后端。
干杯