如何使用Blazor语法折叠/展开Razor组件?

d00d

我目前正在实现一个表单,以创建一个新用户及其相应的用户权限。通过这种形式,我拥有大约30个不同的IT系统,如果用户帐户应具有该特定IT系统的访问权限,我想为管理员提供一个面板,在其中必须输入有关该特定IT系统的一些额外信息。我想使用剃刀组件来实现。到目前为止,我所拥有的是“新用户表单”的核心视图,以及用于特定IT系统的附加信息的剃须刀组件。通过单击+按钮,我希望该组件在IT系统下方可见/展开。到目前为止就是这样:

在此处输入图片说明

新用户的形式:

 <div class="row">
                <div class="col-sm-2 font-weight-bold">GOODWILL PKW/Smart</div>
                <div class="col-sm-2">
                    <label>Add</label>
                    <input type="checkbox" />
                </div>
                <div class="col-sm-2">
                    <label>Change</label>
                    <input type="checkbox" />
                </div>
                <div class="col-sm-2">
                    <label>Remove</label>
                    <input type="checkbox" />
                </div>
                <div class="col-sm-4">                    
                    <button @onclick="@collapseGoodwill">+</button>
                </div>

            </div>
            <ModalGoodwillPKW ></ModalGoodwillPKW>

@code {

public void collapseGoodwill() {     


        }

}

组件

<div class="panel panel-default border">
    <div class="panel-heading alert-primary">
        <h3 class="panel-title">Goodwill PKW/smart</h3>
    </div>

    <div class="panel-body">
        <div class="container-fluid">
            <div class="row">
                <div class="col-sm-2 font-weight-bold">Profile</div>

                <div class="col-sm-5">
                    <input type="checkbox" id="CB_c" />
                    <label>Salesman</label>
                </div>
                <div class="col-sm-5">
                    <input type="checkbox" id="CB_r" />
                    <label>Administrator</label>
                </div>                
            </div>
        </div>
    </div>
</div>

通常,我将在“ collapseGoodwill”方法中使用JQuery向该元素添加.collapse类。但是由于我正在尝试使用Blazor,所以我想知道是否有100%使用Javascript / JQuery的免费方法。

谢谢!

负数

在Blazor中,您始终遵循以下模式:

change data 
    --> new view rendered

每当您要从外部更改组件的UI时,都应该通过更改数据(模型/状态/参数/上下文/ ...)来完成。

对于这种情况,您可以添加一个Collapsed字段来指示面板现在是否已折叠:

<div class="panel panel-default border @Collapse">
    <div class="panel-heading alert-primary">
        <h3 class="panel-title">Goodwill PKW/smart</h3>
    </div>

    <div class="panel-body">
        <div class="container-fluid">
            <div class="row">
                <div class="col-sm-2 font-weight-bold">Profile</div>

                <div class="col-sm-5">
                    <input type="checkbox" id="CB_c" />
                    <label>Salesman</label>
                </div>
                <div class="col-sm-5">
                    <input type="checkbox" id="CB_r" />
                    <label>Administrator</label>
                </div>                
            </div>
        </div>
    </div>
</div>

@code{
    [Parameter]
    public string Collapse{get;set;}="collapse"; // hide by default
}

每当您要折叠它时,只需将此参数设置为即可collapse

<div class="row">
    <div class="col-sm-2 font-weight-bold">GOODWILL PKW/Smart</div>
    <div class="col-sm-2">
        <label>Add</label>
        <input type="checkbox" />
    </div>
    <div class="col-sm-2">
        <label>Change</label>
        <input type="checkbox" />
    </div>
    <div class="col-sm-2">
        <label>Remove</label>
        <input type="checkbox" />
    </div>
    <div class="col-sm-4">                    
        <button @onclick="e => this.Collapsed = !this.Collapsed">
            @( this.Collapsed ? "+" : "-")
        </button>
    </div>
</div>
<ModalGoodwillPKW Collapse="@( this.Collapsed ? "collapse": "")" ></ModalGoodwillPKW>

@code {
    private bool Collapsed = true;
}

演示:

在此处输入图片说明


[编辑]:我们甚至可以通过将字段从字符串更改为布尔值来重构上述代码以暴露较少的信息。

ModalGoodwillPKW.razor

<div class =“ panel panel-default border @(Collapsed?” collapse“:”“) ”> 
    <div class =“ panel-heading alert-primary”> 
        <h3 class =“ panel-title”>商誉PKW /智能</ h3> 
    </ div> 

   ... 


@code { 
    [Parameter] public bool Collapsed {get; set;} = true; //默认情况下隐藏
}
    

UserForm.razor

<div class =“ row”> 
    ... 
    <div class =“ col-sm-4”>                  <button @ onclick =“ e => this.Collapsed =!this.Collapsed”> 
            @(this.Collapsed?“ + “:”-“)
        </ button> 
    </ div> 
</ div> 
<ModalGoodwillPKW Collapsed =” @ Collapsed“ > </ ModalGoodwillPKW> 
@code { 
    private bool Collapsed = true; 
}
       

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用棱角材质创建可折叠/展开的开锁sidenav

来自分类Dev

使用jQuery展开/折叠文本

来自分类Dev

如何在代码中使用Blazor组件?

来自分类Dev

如何使用Blazor组件定位特定的div?

来自分类Dev

如何实现平滑的展开/折叠动画

来自分类Dev

Android ExpandableListView如何保存展开/折叠状态?

来自分类Dev

使用slideToggle展开和折叠列表项

来自分类Dev

使用DatePicker展开和折叠UITableViewCells

来自分类Dev

使用纯CSS展开和折叠文本?

来自分类Dev

使用jQuery中的链接展开/折叠div

来自分类Dev

使用CSS折叠和展开元素

来自分类Dev

使用JavaScript折叠和展开树结构

来自分类Dev

使用jQuery折叠/展开嵌套表

来自分类Dev

使用MSSAS在Excel中展开/折叠的问题

来自分类Dev

使用 jQuery 展开和折叠 div

来自分类Dev

使用 javascript 或 jquery 展开/折叠父元素?

来自分类Dev

Ag 网格:使用分页展开/折叠

来自分类Dev

使用Perl折叠Vim语法

来自分类Dev

如何使用javascript展开和折叠模板手风琴?

来自分类Dev

如何使用AngularJS和ng-click折叠和展开多个部分

来自分类Dev

如何使用angularjs和特定的数据结构创建简单的树可展开/可折叠视图

来自分类Dev

如何使用 React 组件类语法声明样式组件

来自分类Dev

在双屏VS中开发Blazor Razor组件

来自分类Dev

如何使用Action Razor语法在Ajax URL中使用var

来自分类Dev

如何在同一Blazor页面上的Razor组件之间传递数据?

来自分类Dev

在Blazor中,如何在Pages目录中检索所有可路由的Razor组件名称?

来自分类Dev

如何使用Razor语法引用应用程序设置

来自分类Dev

如何使用Razor语法引用应用程序设置

来自分类Dev

Web项目需要使用Razor语法3.0.0.0的缺少Web组件ASP.NET网页

Related 相关文章

  1. 1

    如何使用棱角材质创建可折叠/展开的开锁sidenav

  2. 2

    使用jQuery展开/折叠文本

  3. 3

    如何在代码中使用Blazor组件?

  4. 4

    如何使用Blazor组件定位特定的div?

  5. 5

    如何实现平滑的展开/折叠动画

  6. 6

    Android ExpandableListView如何保存展开/折叠状态?

  7. 7

    使用slideToggle展开和折叠列表项

  8. 8

    使用DatePicker展开和折叠UITableViewCells

  9. 9

    使用纯CSS展开和折叠文本?

  10. 10

    使用jQuery中的链接展开/折叠div

  11. 11

    使用CSS折叠和展开元素

  12. 12

    使用JavaScript折叠和展开树结构

  13. 13

    使用jQuery折叠/展开嵌套表

  14. 14

    使用MSSAS在Excel中展开/折叠的问题

  15. 15

    使用 jQuery 展开和折叠 div

  16. 16

    使用 javascript 或 jquery 展开/折叠父元素?

  17. 17

    Ag 网格:使用分页展开/折叠

  18. 18

    使用Perl折叠Vim语法

  19. 19

    如何使用javascript展开和折叠模板手风琴?

  20. 20

    如何使用AngularJS和ng-click折叠和展开多个部分

  21. 21

    如何使用angularjs和特定的数据结构创建简单的树可展开/可折叠视图

  22. 22

    如何使用 React 组件类语法声明样式组件

  23. 23

    在双屏VS中开发Blazor Razor组件

  24. 24

    如何使用Action Razor语法在Ajax URL中使用var

  25. 25

    如何在同一Blazor页面上的Razor组件之间传递数据?

  26. 26

    在Blazor中,如何在Pages目录中检索所有可路由的Razor组件名称?

  27. 27

    如何使用Razor语法引用应用程序设置

  28. 28

    如何使用Razor语法引用应用程序设置

  29. 29

    Web项目需要使用Razor语法3.0.0.0的缺少Web组件ASP.NET网页

热门标签

归档