blazor - 如何在 Blazor 服务器应用程序中使用作为绑定值“tick”的 id 更改复选框值,并且标签颜色将相应更改
问题描述
我怎么能做到这一点。如何绑定复选框值并根据完成的值更改颜色。如何在 Blazor 中提供条件来检查这一点。
任何人都可以分享任何建议以获得此输出。仅检查已完成的流程,颜色将出现在每个订单、流程、取货和交付中。
解决方案
在这里,我在绑定值上使用 switch 语句来给我一个颜色值以在样式属性中使用。
<EditForm Model="@someModel" class="d-flex flex-row">
<div class="m-2 p-2">
<div style="background-color: @orderColour;">Order</div>
<InputRadioGroup @bind-Value="someModel.Order">
<InputRadio Value="Order.Placed" /> Placed<br>
<InputRadio Value="Order.Accepted" /> Accepted<br>
<InputRadio Value="Order.Completed" /> Completed<br>
</InputRadioGroup>
</div>
@if (someModel.Order == Order.Completed)
{
<div class="m-2 p-2">
<div style="background-color: @processColour;">Process</div>
<InputRadioGroup @bind-Value="someModel.Process">
<InputRadio Value="Process.InProcess" /> In Process<br>
<InputRadio Value="Process.Deliver" /> Deliver<br>
</InputRadioGroup>
</div>
@if (someModel.Process == Process.Deliver)
{
<div class="m-2 p-2">
<div style="background-color: @deliveryColour;">Delivery</div>
<InputRadioGroup @bind-Value="someModel.Delivery">
<InputRadio Value="Delivery.OutForDelivery" /> Placed<br>
<InputRadio Value="Delivery.Delivered" /> Accepted<br>
<InputRadio Value="Delivery.Completed" /> Completed<br>
</InputRadioGroup>
</div>
@if (isComplete)
{
<h1 class="text-success">
✔
</h1>
}
}
}
</EditForm>
@code {
SomeModel someModel = new SomeModel();
string orderColour => someModel.Order switch
{
Order.Placed => "red",
Order.Accepted => "orange",
Order.Completed => "green",
_ => "grey"
};
string processColour => someModel.Process switch
{
Process.InProcess => "orange",
Process.Deliver => "green",
_ => "grey"
};
string deliveryColour => someModel.Delivery switch
{
Delivery.OutForDelivery => "red",
Delivery.Delivered => "orange",
Delivery.Completed => "green",
_ => "grey"
};
bool isComplete =>
someModel.Order == Order.Completed &&
someModel.Process == Process.Deliver &&
someModel.Delivery == Delivery.Completed;
public class SomeModel
{
public Order Order { get; set; }
public Process Process { get; set; }
public Delivery Delivery { get; set; }
}
public enum Order { Unkown, Placed, Accepted, Completed }
public enum Process { Unkown, InProcess, Deliver }
public enum Delivery { Unkown, OutForDelivery, Delivered, Completed }
}
推荐阅读
- android - 在 Android SDK 的 Stripe AddPaymentMethodActivity 中找不到 Builder 符号
- python - 添加到列表(识别输入是否为素数)
- r - 成对子串一个数据框并将它们保存在一个列表中
- css - 带 Bootstrap 4 表的全高日历
- python - 通过scrapy在以逗号分隔的一列中提取Woocommerce产品图像
- rust - 如何在 v0.99.10 中克隆 async_std::path::PathBuf?
- python - 与python合并的moviepy剪辑
- amazon-web-services - 将字符串转换为日期,没有破折号
- node.js - Discord.js 反应收集
- multidimensional-array - 如何忽略多维动态数组覆盖组实例化的特定覆盖组实例