mirror of
https://gitee.com/ant-design-blazor/ant-design-blazor.git
synced 2024-12-15 09:21:24 +08:00
67 lines
3.5 KiB
C#
67 lines
3.5 KiB
C#
@namespace AntDesign
|
|
@inherits AntInputComponentBase<string>
|
|
|
|
<div style="@Style">
|
|
<span class="ant-cascader-picker @_pickerSizeClass" tabindex="1" @onclick="InputOnToggle" @onblur="CascaderOnBlur" @onmouseover="InputOnMouseOver" @onmouseout="InputOnMouseOut">
|
|
<span class="ant-cascader-picker-label"></span>
|
|
<input autocomplete="off" tabindex="-1" placeholder="@PlaceHolder" class="ant-input ant-cascader-input @_inputSizeClass" readonly="@Readonly" type="text" value="@_displayText">
|
|
@if (string.IsNullOrWhiteSpace(Value) || !ShowClearIcon)
|
|
{
|
|
<Icon Type="down" Class="@($"ant-cascader-picker-arrow {(ToggleState ? "ant-cascader-picker-arrow-expand" : string.Empty)}")" />
|
|
}
|
|
else
|
|
{
|
|
<Icon Type="close-circle" Class="ant-cascader-picker-clear" OnClick="ClearSelected" StopPropagation />
|
|
}
|
|
</span>
|
|
|
|
@if (ToggleState && _nodelist != null && _nodelist.Any())
|
|
{
|
|
<div class="ant-cascader-menus ant-cascader-menus-placement-bottomLeft" tabindex="-1" @onblur="CascaderOnBlur">
|
|
<div @onmouseover="NodesOnMouseOver" @onmouseout="NodesOnMouseOut">
|
|
<ul class="ant-cascader-menu">
|
|
@foreach (CascaderNode nd in _nodelist)
|
|
{
|
|
bool isActive = _renderNodes.Where(n => n.Label == nd.Label).Any();
|
|
string activeClass = isActive ? "ant-cascader-menu-item-active" : string.Empty;
|
|
|
|
<li class="ant-cascader-menu-item ant-cascader-menu-item-expand @activeClass @(nd.Disabled ? "ant-cascader-menu-item-disabled" : string.Empty)" title="@nd.Label" role="menuitem"
|
|
@onclick="@(e => NodeOnClick(nd))" @onmouseover="@(e => NodeOnMouseOver(nd))">
|
|
@nd.Label
|
|
@if (nd.HasChildren)
|
|
{
|
|
<span class="ant-cascader-menu-item-expand-icon">
|
|
<Icon Type="right" />
|
|
</span>
|
|
}
|
|
</li>
|
|
}
|
|
</ul>
|
|
@foreach (CascaderNode node in _renderNodes)
|
|
{
|
|
if (node.HasChildren)
|
|
{
|
|
<ul class="ant-cascader-menu">
|
|
@foreach (CascaderNode m in node.Children)
|
|
{
|
|
bool isActive = _renderNodes.Where(n => n.Label == m.Label).Any();
|
|
string activeClass = isActive ? "ant-cascader-menu-item-active" : string.Empty;
|
|
|
|
<li class="ant-cascader-menu-item ant-cascader-menu-item-expand @activeClass @(m.Disabled ? "ant-cascader-menu-item-disabled" : string.Empty)" title="@m.Label" role="menuitem"
|
|
@onclick="@(e => NodeOnClick(m))" @onmouseover="@(e => NodeOnMouseOver(m))">
|
|
@m.Label
|
|
@if (m.HasChildren)
|
|
{
|
|
<span class="ant-cascader-menu-item-expand-icon">
|
|
<Icon Type="right" />
|
|
</span>
|
|
}
|
|
</li>
|
|
}
|
|
</ul>
|
|
}
|
|
}
|
|
</div>
|
|
</div>
|
|
}
|
|
</div> |