ant-design-blazor/components/descriptions/Descriptions.razor
Andrzej Bakun 152a574577 feat(module: overlay): OverlayTrigger not bound to a div (#937)
* feat(module:overlay): OverlayTrigger not bound to a div

* feat(module:overlay): OverlayTrigger not bound to a div

* feat(module:overlay): Logic transfer to single Overlay

* feat(module:overlay): remove obsolete duplication

* feat(module:Tooltip): Add for unbounded oncontextmenu event handler

* feat(module:tooltip): unbound js event listeners remove

* docs(module:tooltip): unbound explanation

* fix(module:button): attach Ref to top level html element @ref

* feat(module:dropdown&tooltip&popconfirm&popover): Overlay not bound to a div

* docs(module:dropdown&tooltip&popconfirm&popover): unbound explanation

* feat(module:OverlayTrigger): common logic relocation

* feat(module:overlaytrigger): Overlay not bound to a div

* feat(module:DatePicker): Overlay not bound to a div

* feat(module:select): Overlay not boud to div

* fix(module:select): onclickarrow event relocation

* fix(module:select): rename Show to OnArrowClick

* feat(module:avatar): Overlay not bound to a div

* docs(module:avatar): demo switch to unbound version

* feat(module:autocomplete): partial OverlayTrigger not bound to a div

* feat(module:slider): tooltip

* docs(module:slider): tooltip

* fix(module:overlay): add SetVisible method

* feat: set Ref where missing, performance

components register Ref when missing
IsFixed flag for CascadeValue changed
hard-code sequence numbers when using RenderTreeBuilder
Rate component use Tooltip Unbound version
Tabs test fix

* fix: revert changes (accidental)

* feat(module:upload): tooltip with unbound usage

* feat(module:table): column use of unbound tooltip

* feat(module:autocomplete):overlay unbound from div

* fix(module:upload): missing div restore

Co-authored-by: James Yeung <shunjiey@hotmail.com>
2021-01-21 17:20:10 +08:00

111 lines
5.0 KiB
C#

@namespace AntDesign
@inherits AntDomComponentBase
<CascadingValue Value="this">
@ChildContent
</CascadingValue>
<div @ref="@Ref" class="@ClassMapper.Class" style="@Style" id="@Id">
@if (Title != null || TitleTemplate != null)
{
<div class="ant-descriptions-title">
@if (TitleTemplate != null)@TitleTemplate else @Title
</div>
}
<div class="ant-descriptions-view">
<table>
<tbody>
@if (Layout == DescriptionsLayout.Horizontal)
{
foreach (var row in this._itemMatrix)
{
<tr class="ant-descriptions-row">
@foreach (var item in row)
{
if (Bordered == false)
{
<!-- Horizontal & NOT Bordered -->
<td class="ant-descriptions-item" colspan="@item.realSpan" @ref="@item.item.Ref">
<span class="ant-descriptions-item-label @(Colon ? "ant-descriptions-item-colon" : null)">
@if (item.item.TitleTemplate != null)@item.item.TitleTemplate else @item.item.Title
</span>
<span class="ant-descriptions-item-content">
@item.item.ChildContent
</span>
</td>
}
else
{
<!-- Horizontal & Bordered -->
<td class="ant-descriptions-item-label">
@if (item.item.TitleTemplate != null)@item.item.TitleTemplate else @item.item.Title
</td>
<td class="ant-descriptions-item-content" colspan="@(item.realSpan * 2 - 1)">
@item.item.ChildContent
</td>
}
}
</tr>
}
}
else if (Layout == DescriptionsLayout.Vertical)
{
if (Bordered == false)
{
<!-- Vertical & NOT Bordered -->
foreach (var row in this._itemMatrix)
{
<tr class="ant-descriptions-row">
@foreach (var item in row)
{
<td class="ant-descriptions-item" colspan="@item.realSpan">
<span class="ant-descriptions-item-label @(Colon ? "ant-descriptions-item-colon" : null)">
@if (item.item.TitleTemplate != null)@item.item.TitleTemplate else @item.item.Title
</span>
</td>
}
</tr>
<tr class="ant-descriptions-row">
@foreach (var item in row)
{
<td class="ant-descriptions-item" colspan="@item.realSpan">
<span class="ant-descriptions-item-content">
@item.item.ChildContent
</span>
</td>
}
</tr>
}
}
else
{
<!-- Vertical & Bordered -->
foreach (var row in this._itemMatrix)
{
<tr class="ant-descriptions-row">
@foreach (var item in row)
{
<td class="ant-descriptions-item-label" colspan="@item.realSpan">
@if (item.item.TitleTemplate != null)@item.item.TitleTemplate else @item.item.Title
</td>
}
</tr>
<tr class="ant-descriptions-row">
@foreach (var item in row)
{
<td class="ant-descriptions-item-content" colspan="@item.realSpan">
@item.item.ChildContent
</td>
}
</tr>
}
}
}
</tbody>
</table>
</div>
</div>