parent
bd6520cc50
commit
1672820e4e
|
|
@ -20,6 +20,38 @@
|
|||
<option value="HtmlEncode[[2]]">HtmlEncode[[Product_2]]</option>
|
||||
</select>
|
||||
</div>
|
||||
<div>
|
||||
<table>
|
||||
<tr>
|
||||
<th>
|
||||
<label for="HtmlEncode[[Number]]">HtmlEncode[[Number]]</label>
|
||||
</th>
|
||||
<th>
|
||||
<label for="HtmlEncode[[ProductName]]">HtmlEncode[[ProductName]]</label>
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<input type="HtmlEncode[[number]]" data-val="HtmlEncode[[true]]" data-val-required="HtmlEncode[[The Number field is required.]]" id="HtmlEncode[[ProductDetails_0__Number]]" name="HtmlEncode[[ProductDetails[0].Number]]" value="HtmlEncode[[0]]" />
|
||||
<span class="text-danger HtmlEncode[[field-validation-valid]]" style="" data-valmsg-for="HtmlEncode[[ProductDetails[0].Number]]" data-valmsg-replace="HtmlEncode[[true]]"></span>
|
||||
</td>
|
||||
<td>
|
||||
<input type="HtmlEncode[[text]]" data-val="HtmlEncode[[true]]" data-val-required="HtmlEncode[[The ProductName field is required.]]" id="HtmlEncode[[ProductDetails_0__ProductName]]" name="HtmlEncode[[ProductDetails[0].ProductName]]" value="HtmlEncode[[Product_0]]" />
|
||||
<span class="text-danger HtmlEncode[[field-validation-valid]]" style="" data-valmsg-for="HtmlEncode[[ProductDetails[0].ProductName]]" data-valmsg-replace="HtmlEncode[[true]]"></span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<input type="HtmlEncode[[number]]" data-val="HtmlEncode[[true]]" data-val-required="HtmlEncode[[The Number field is required.]]" id="HtmlEncode[[ProductDetails_1__Number]]" name="HtmlEncode[[ProductDetails[1].Number]]" value="HtmlEncode[[1]]" />
|
||||
<span class="text-danger HtmlEncode[[field-validation-valid]]" style="" data-valmsg-for="HtmlEncode[[ProductDetails[1].Number]]" data-valmsg-replace="HtmlEncode[[true]]"></span>
|
||||
</td>
|
||||
<td>
|
||||
<input type="HtmlEncode[[text]]" data-val="HtmlEncode[[true]]" data-val-required="HtmlEncode[[The ProductName field is required.]]" id="HtmlEncode[[ProductDetails_1__ProductName]]" name="HtmlEncode[[ProductDetails[1].ProductName]]" value="HtmlEncode[[Product_1]]" />
|
||||
<span class="text-danger HtmlEncode[[field-validation-valid]]" style="" data-valmsg-for="HtmlEncode[[ProductDetails[1].ProductName]]" data-valmsg-replace="HtmlEncode[[true]]"></span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div>
|
||||
<label class="order" for="HtmlEncode[[SubstituteProducts]]">HtmlEncode[[SubstituteProducts]]</label>
|
||||
<select id="HtmlEncode[[SubstituteProducts]]" multiple="HtmlEncode[[multiple]]" name="HtmlEncode[[SubstituteProducts]]"><option value="HtmlEncode[[0]]">HtmlEncode[[Product_0]]</option>
|
||||
|
|
|
|||
|
|
@ -20,6 +20,38 @@
|
|||
<option value="2">Product_2</option>
|
||||
</select>
|
||||
</div>
|
||||
<div>
|
||||
<table>
|
||||
<tr>
|
||||
<th>
|
||||
<label for="Number">Number</label>
|
||||
</th>
|
||||
<th>
|
||||
<label for="ProductName">ProductName</label>
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<input type="number" data-val="true" data-val-required="The Number field is required." id="ProductDetails_0__Number" name="ProductDetails[0].Number" value="0" />
|
||||
<span class="text-danger field-validation-valid" style="" data-valmsg-for="ProductDetails[0].Number" data-valmsg-replace="true"></span>
|
||||
</td>
|
||||
<td>
|
||||
<input type="text" data-val="true" data-val-required="The ProductName field is required." id="ProductDetails_0__ProductName" name="ProductDetails[0].ProductName" value="Product_0" />
|
||||
<span class="text-danger field-validation-valid" style="" data-valmsg-for="ProductDetails[0].ProductName" data-valmsg-replace="true"></span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<input type="number" data-val="true" data-val-required="The Number field is required." id="ProductDetails_1__Number" name="ProductDetails[1].Number" value="1" />
|
||||
<span class="text-danger field-validation-valid" style="" data-valmsg-for="ProductDetails[1].Number" data-valmsg-replace="true"></span>
|
||||
</td>
|
||||
<td>
|
||||
<input type="text" data-val="true" data-val-required="The ProductName field is required." id="ProductDetails_1__ProductName" name="ProductDetails[1].ProductName" value="Product_1" />
|
||||
<span class="text-danger field-validation-valid" style="" data-valmsg-for="ProductDetails[1].ProductName" data-valmsg-replace="true"></span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div>
|
||||
<label class="order" for="SubstituteProducts">SubstituteProducts</label>
|
||||
<select id="SubstituteProducts" multiple="multiple" name="SubstituteProducts"><option value="0">Product_0</option>
|
||||
|
|
|
|||
|
|
@ -20,6 +20,38 @@
|
|||
<option value="HtmlEncode[[2]]">HtmlEncode[[Product_2]]</option>
|
||||
</select>
|
||||
</div>
|
||||
<div>
|
||||
<table>
|
||||
<tr>
|
||||
<th>
|
||||
<label for="HtmlEncode[[Number]]">HtmlEncode[[Number]]</label>
|
||||
</th>
|
||||
<th>
|
||||
<label for="HtmlEncode[[ProductName]]">HtmlEncode[[ProductName]]</label>
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<input data-val="HtmlEncode[[true]]" data-val-required="HtmlEncode[[The Number field is required.]]" id="HtmlEncode[[ProductDetails_0__Number]]" name="HtmlEncode[[ProductDetails[0].Number]]" type="HtmlEncode[[number]]" value="HtmlEncode[[0]]" />
|
||||
<span class="HtmlEncode[[field-validation-valid text-danger]]" data-valmsg-for="HtmlEncode[[ProductDetails[0].Number]]" data-valmsg-replace="HtmlEncode[[true]]" style=""></span>
|
||||
</td>
|
||||
<td>
|
||||
<input data-val="HtmlEncode[[true]]" data-val-required="HtmlEncode[[The ProductName field is required.]]" id="HtmlEncode[[ProductDetails_0__ProductName]]" name="HtmlEncode[[ProductDetails[0].ProductName]]" type="HtmlEncode[[text]]" value="HtmlEncode[[Product_0]]" />
|
||||
<span class="HtmlEncode[[field-validation-valid text-danger]]" data-valmsg-for="HtmlEncode[[ProductDetails[0].ProductName]]" data-valmsg-replace="HtmlEncode[[true]]" style=""></span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<input data-val="HtmlEncode[[true]]" data-val-required="HtmlEncode[[The Number field is required.]]" id="HtmlEncode[[ProductDetails_1__Number]]" name="HtmlEncode[[ProductDetails[1].Number]]" type="HtmlEncode[[number]]" value="HtmlEncode[[1]]" />
|
||||
<span class="HtmlEncode[[field-validation-valid text-danger]]" data-valmsg-for="HtmlEncode[[ProductDetails[1].Number]]" data-valmsg-replace="HtmlEncode[[true]]" style=""></span>
|
||||
</td>
|
||||
<td>
|
||||
<input data-val="HtmlEncode[[true]]" data-val-required="HtmlEncode[[The ProductName field is required.]]" id="HtmlEncode[[ProductDetails_1__ProductName]]" name="HtmlEncode[[ProductDetails[1].ProductName]]" type="HtmlEncode[[text]]" value="HtmlEncode[[Product_1]]" />
|
||||
<span class="HtmlEncode[[field-validation-valid text-danger]]" data-valmsg-for="HtmlEncode[[ProductDetails[1].ProductName]]" data-valmsg-replace="HtmlEncode[[true]]" style=""></span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div>
|
||||
<label class="HtmlEncode[[order]]" for="HtmlEncode[[SubstituteProducts]]">HtmlEncode[[SubstituteProducts]]</label>
|
||||
<select id="HtmlEncode[[SubstituteProducts]]" multiple="HtmlEncode[[multiple]]" name="HtmlEncode[[SubstituteProducts]]"><option value="HtmlEncode[[0]]">HtmlEncode[[Product_0]]</option>
|
||||
|
|
|
|||
|
|
@ -20,6 +20,38 @@
|
|||
<option value="2">Product_2</option>
|
||||
</select>
|
||||
</div>
|
||||
<div>
|
||||
<table>
|
||||
<tr>
|
||||
<th>
|
||||
<label for="Number">Number</label>
|
||||
</th>
|
||||
<th>
|
||||
<label for="ProductName">ProductName</label>
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<input data-val="true" data-val-required="The Number field is required." id="ProductDetails_0__Number" name="ProductDetails[0].Number" type="number" value="0" />
|
||||
<span class="field-validation-valid text-danger" data-valmsg-for="ProductDetails[0].Number" data-valmsg-replace="true" style=""></span>
|
||||
</td>
|
||||
<td>
|
||||
<input data-val="true" data-val-required="The ProductName field is required." id="ProductDetails_0__ProductName" name="ProductDetails[0].ProductName" type="text" value="Product_0" />
|
||||
<span class="field-validation-valid text-danger" data-valmsg-for="ProductDetails[0].ProductName" data-valmsg-replace="true" style=""></span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<input data-val="true" data-val-required="The Number field is required." id="ProductDetails_1__Number" name="ProductDetails[1].Number" type="number" value="1" />
|
||||
<span class="field-validation-valid text-danger" data-valmsg-for="ProductDetails[1].Number" data-valmsg-replace="true" style=""></span>
|
||||
</td>
|
||||
<td>
|
||||
<input data-val="true" data-val-required="The ProductName field is required." id="ProductDetails_1__ProductName" name="ProductDetails[1].ProductName" type="text" value="Product_1" />
|
||||
<span class="field-validation-valid text-danger" data-valmsg-for="ProductDetails[1].ProductName" data-valmsg-replace="true" style=""></span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div>
|
||||
<label class="order" for="SubstituteProducts">SubstituteProducts</label>
|
||||
<select id="SubstituteProducts" multiple="multiple" name="SubstituteProducts"><option value="0">Product_0</option>
|
||||
|
|
|
|||
|
|
@ -52,6 +52,10 @@ namespace HtmlGenerationWebSite.Controllers
|
|||
{
|
||||
_productsList = new SelectList(_products, "Number", "ProductName");
|
||||
_productsListWithSelection = new SelectList(_products, "Number", "ProductName", 2);
|
||||
foreach (var i in _order.Products)
|
||||
{
|
||||
_order.ProductDetails.Add(_products[i]);
|
||||
}
|
||||
}
|
||||
|
||||
public IActionResult Enum()
|
||||
|
|
|
|||
|
|
@ -55,5 +55,7 @@ namespace HtmlGenerationWebSite.Models
|
|||
get;
|
||||
set;
|
||||
}
|
||||
|
||||
public IList<Product> ProductDetails { get; } = new List<Product>();
|
||||
}
|
||||
}
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
@model HtmlGenerationWebSite.Models.Order
|
||||
@model HtmlGenerationWebSite.Models.Order
|
||||
|
||||
@{
|
||||
ViewBag.Title = "Order Page";
|
||||
|
|
@ -33,6 +33,34 @@
|
|||
@{ var @object = "multiple"; }
|
||||
<select asp-for="@Model.Products" asp-items="@((IEnumerable<SelectListItem>)ViewBag.Items)" multiple="@(@object)"></select>
|
||||
</div>
|
||||
<div>
|
||||
@if (Model.ProductDetails.Count > 0)
|
||||
{
|
||||
<table>
|
||||
<tr>
|
||||
<th>
|
||||
<label asp-for="ProductDetails.FirstOrDefault().Number"></label>
|
||||
</th>
|
||||
<th>
|
||||
<label asp-for="ProductDetails.FirstOrDefault().ProductName"></label>
|
||||
</th>
|
||||
</tr>
|
||||
@for (var i = 0; i < Model.ProductDetails.Count; i++)
|
||||
{
|
||||
<tr>
|
||||
<td>
|
||||
<input asp-for="ProductDetails[i].Number" />
|
||||
<span asp-validation-for="ProductDetails[i].Number" class="text-danger" style=""></span>
|
||||
</td>
|
||||
<td>
|
||||
<input asp-for="ProductDetails[i].ProductName" />
|
||||
<span asp-validation-for="ProductDetails[i].ProductName" class="text-danger" style=""></span>
|
||||
</td>
|
||||
</tr>
|
||||
}
|
||||
</table>
|
||||
}
|
||||
</div>
|
||||
<div>
|
||||
<label asp-for="SubstituteProducts" class="order"></label>
|
||||
@* Use same select list as Products. Selection when Products is non-null is not used here. *@
|
||||
|
|
|
|||
|
|
@ -27,6 +27,34 @@
|
|||
@{ var productSelectList = (IEnumerable<SelectListItem>)ViewBag.Items; }
|
||||
@Html.ListBoxFor(m => m.Products, productSelectList)
|
||||
</div>
|
||||
<div>
|
||||
@if (Model.ProductDetails.Count > 0)
|
||||
{
|
||||
<table>
|
||||
<tr>
|
||||
<th>
|
||||
@Html.LabelFor(m => m.ProductDetails.FirstOrDefault().Number)
|
||||
</th>
|
||||
<th>
|
||||
@Html.LabelFor(m => m.ProductDetails.FirstOrDefault().ProductName)
|
||||
</th>
|
||||
</tr>
|
||||
@for (var i = 0; i < Model.ProductDetails.Count; i++)
|
||||
{
|
||||
<tr>
|
||||
<td>
|
||||
@Html.TextBoxFor(m => m.ProductDetails[i].Number, htmlAttributes: new { type = "number" })
|
||||
@Html.ValidationMessageFor(m => m.ProductDetails[i].Number, message: null, htmlAttributes: new { @class = "text-danger", style = "" })
|
||||
</td>
|
||||
<td>
|
||||
@Html.TextBoxFor(m => m.ProductDetails[i].ProductName)
|
||||
@Html.ValidationMessageFor(m => m.ProductDetails[i].ProductName, message: null, htmlAttributes: new { @class = "text-danger", style = "" })
|
||||
</td>
|
||||
</tr>
|
||||
}
|
||||
</table>
|
||||
}
|
||||
</div>
|
||||
<div>
|
||||
@Html.LabelFor(m => m.SubstituteProducts, htmlAttributes: new { @class = "order" })
|
||||
@* Use same select list as Products. Selection when Products is non-null is not used here. *@
|
||||
|
|
|
|||
Loading…
Reference in New Issue