我目前正在实现一个表单,以创建一个新用户及其相应的用户权限。通过这种形式,我拥有大约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] 删除。
我来说两句