c# - 在 C# 和 ASP.NET Core 中单击另一个按钮时如何隐藏按钮并显示它们?

标签 c# html asp.net-core blazor

我有一个问题:如何隐藏一些按钮并在单击另一个按钮时使它们可见?我正在使用 Blazor 和 ASP.NET Core,我已经看到了几个示例,但它们是在 Javascript 和 jQuery 中而不是在 C# 中。

这是将执行事件以显示按钮的按钮:

<button class="btn btn-dark" @onclick="GuardarCotizacion"><i class="fa fa-floppy-o" aria-hidden="true"></i> Guardar Cotización</button>

这些是我想隐藏在下拉列表中的按钮:

<div class="box-footer">
    <div class="pull-right">
        <div class="btn-group">
            <div class="btn-group">
                <div class="dropdown">
                    <button class="btn btn-info dropdown-toggle" type="button" id="dropdownMenu1" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Correo</button>
                    <div class="dropdown-menu" aria-labelledby="dropdownMenu1">
                        <button class="dropdown-item" type="button" @onclick="@DescargarPDF"><i class="oi oi-envelope-closed"></i> Descargar Cotización</button>
                        <button class="dropdown-item" type="button"><i class="oi oi-eye"></i> Ver Correo</button>
                    </div>
                </div>
            </div>

            <button type="button" class="btn btn-outline-info" @onclick="@AgregarProducto"><i class='fa fa-plus'></i> Agregar productos</button>
        </div>
    </div>                              

    <div class="btn-group">
        <div class="btn-group">
            <div class="dropdown">
                <button class="btn btn-primary dropdown-toggle" type="button" id="dropdownMenu2" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Facturación</button>
                <div class="dropdown-menu" aria-labelledby="dropdownMenu2">
                @if (isFacturado)
                {
                    <button class="dropdown-item" type="button"><i class="oi oi-eye"></i> Ver Factura</button>
                }
                else
                {
                    <button class="dropdown-item" type="button" @onclick="FacturarDemo"><i class="oi oi-file"></i> FacturarDemo</button>
                    <button class="dropdown-item" type="button"><i class="oi oi-file"></i> ---- </button>
                    <button class="dropdown-item" type="button" @onclick="Facturar"><i class="oi oi-file"></i> Facturar</button>
                }
                </div>
            </div>
        </div>
    </div>

    <a class="btn btn-outline-primary" href="detalles-carritos"><i class="oi oi-eye"></i> Ver Artículos</a>
</div>

最佳答案

<button class="btn btn-dark" @onclick="GuardarCotizacion"><i class="fa fa-floppy-o" aria-hidden="true"></i> Guardar Cotización</button>

在 Blazor 中,最好用渲染或不渲染来说话,而不是让它们可见或隐藏它们。因此,如果 GuardarCotizacion 是一种在调用时应该隐藏一些按钮的方法,则可以如下面的 @code block 中所述:

@code 
{
   private bool show = false;
   private void GuardarCotizacion()
   {
       show = true;
   } 
}

注意:上面的代码定义了一个默认设置为 false 的 bool 变量。 现在,当您单击“Guardar Cotización”按钮时,会调用 GuardarCotizacion 方法并将变量设置为 true,之后会自动调用 StateHasChanged 方法,并呈现组件。

例如,如果你想“隐藏”这个按钮:

<button class="btn btn-info dropdown-toggle" type="button" id="dropdownMenu1" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Correo</button>

并且仅在您单击“Guardar Cotización”按钮时显示它,您可以将按钮包装在 if 语句中,如下所示:

@if( show)
{
   <button class="btn btn-info dropdown-toggle" type="button" id="dropdownMenu1" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Correo</button>

}

现在,当你的组件刚创建时,这个按钮是不会显示的,因为变量 show 的初始值为 false,但是在将其更改为 true 之后,它会被渲染。

这就是您如何使用按钮的其余部分一起或单独执行此操作, 根据您的想法,以简单的方式或复杂的方式。

关于c# - 在 C# 和 ASP.NET Core 中单击另一个按钮时如何隐藏按钮并显示它们?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62730963/

相关文章:

当步长大于剩余值时,HTML 范围输入不会完全填充

javascript - 为什么我的 Javascript Chrome 扩展代码不起作用? (循环检查按钮)

http - 使用中间件仅处理 Controller 请求

c# - 将数据集转换为 XML

c# - 使用 TextReader 读取字节

css - 更改窗口大小时,html 页面中的内容重叠

asp.net-core - 如何扩展服务器端 Blazor 应用程序?

c# - 从屏幕上的控件分离后,RichTextBox 文本在 VisualBrush 中消失

c# - 使用显式接口(interface)实现

javascript - 如何修复 “Failed to load resource: the server responded with a status of 400 ()” API获取错误