Как отключить кнопку более элегантно
У меня есть один из моих просмотров следующий код бритвы:
@if (item.PMApproved != true) {
<input type="button" class="btnresetinvoice button" value="Reset" data-invoiceid="@item.InvoiceId" />
}
else {
<input type="button" class="btnresetinvoice button" value="Reset" data-invoiceid="@item.InvoiceId" disabled="disabled" />
}
Довольно грубая. В основном я хочу отключить кнопку в определенном состоянии, так как вы сможете работать с кодом. Что было бы более желательным способом сделать это?
Ответы
Ответ 1
Я не знаю, на каком языке вы используете, но вы можете переместить инструкцию if
ближе к фактической разнице между двумя строками:
<input type="button" class="btnresetinvoice button" value="Reset"
data-invoiceid="@item.InvoiceId"
@{ if(item.PMApproved != true) {
@:disabled="disabled"
} }
/>
Ответ 2
Средство с разметкой, поддерживаемое новым методом расширения:
public static class HtmlExtensions
{
public static HtmlString DisabledIf(this HtmlHelper html, bool condition)
{
return new HtmlString(condition ? "disabled=\"disabled\"" : "");
}
}
В ваших представлениях повторно используйте wazoo:
<button type="reset" @Html.DisabledIf(someCondition)>Clear Fields</button>
Красиво многократно используемое, а рендеринговая разметка очень проста в отношении пробелов:
<button type="reset" disabled="disabled">Clear Fields</button>
Ответ 3
попробуйте это
<button type="submit" disabled="@(!item.PMApproved)"></button>
Ответ 4
Помощник может помочь:
public static class HtmlExtensions
{
public static IHtmlString ApproveButton(this HtmlHelper htmlHelper, MyViewModel item)
{
var button = new TagBuilder("input");
button.Attributes["type"] = "button";
button.Attributes["value"] = "Reset";
button.AddCssClass("btnresetinvoice");
button.AddCssClass("button");
button.Attributes["data-invoiceid"] = item.InvoiceId.ToString();
if (item.PMApproved)
{
button.Attributes["disabled"] = "disabled";
}
return new HtmlString(button.ToString(TagRenderMode.SelfClosing));
}
}
а затем:
@Html.ApproveButton(item)
Ответ 5
<input type="button" value="Reset" @{@((!item.PMApproved) ? null : new { disabled = "disabled" })}; />
Нет необходимости в этом раздутом коде, просто сохраните его: -)
Ответ 6
<button @(isEnabled ? null : "disabled")>Butt</button>
Ответ 7
Возможный простой способ:
<input type="button" @(item.PMApproved ? "disabled" : "") />
Ответ 8
Использование бритвы asp.net mvc5:
@if(condition)
{
<button data-toggle="collapse" data-target="#content">Details</button>
}
else
{
<button disabled>Details</button>
}
Это предотвращает попытки включения кнопки из DevTools, потому что бритва не видна для DevTools