Loading 使用绝对定位来实现,所以父元素需要 style="position: relative;"
也可以直接使用 LoadingContainer,一个 position 为 relative 的容器内部包含了 Loading,属性和 Loading 一样
使用 IsActive控制是否显示
Loading 使用绝对定位来实现,所以父元素需要 style="position: relative;"
也可以直接使用 LoadingContainer,一个 position 为 relative 的容器内部包含了 Loading,属性和 Loading 一样
使用 IsActive控制是否显示
消息内容
消息内容
消息内容
消息内容
消息内容
消息内容
消息内容
消息内容
消息内容
消息内容
消息内容
消息内容
<Columns>
<Column>
<Box style="position: relative">
<p>消息内容</p>
<p>消息内容</p>
<p>消息内容</p>
<p>消息内容</p>
<Loading IsActive="@active"></Loading>
</Box>
</Column>
<Column>
<Box style="position: relative">
<p>消息内容</p>
<p>消息内容</p>
<p>消息内容</p>
<p>消息内容</p>
<Loading IsActive="@active" IconClass="fa-refresh">加载中...</Loading>
</Box>
</Column>
<Column>
<Box style="position: relative">
<p>消息内容</p>
<p>消息内容</p>
<p>消息内容</p>
<p>消息内容</p>
<Loading IsActive="@active" Text="Loading..." IconClass="fa-circle-o-notch"></Loading>
</Box>
</Column>
</Columns>
<Button @onclick="() => active=!active">切换</Button>
@code {
private bool active = true;
}
消息内容
消息内容
消息内容
消息内容
消息内容
消息内容
消息内容
消息内容
消息内容
消息内容
消息内容
消息内容
消息内容
消息内容
消息内容
消息内容
消息内容
消息内容
消息内容
消息内容
消息内容
消息内容
消息内容
消息内容
<Columns IsMultiline>
<Column Size="Size.Size4">
<Box style="position: relative">
<p>消息内容</p>
<p>消息内容</p>
<p>消息内容</p>
<p>消息内容</p>
<Loading Color="Color.Primary" IsActive="@active"></Loading>
</Box>
</Column>
<Column Size="Size.Size4">
<Box style="position: relative">
<p>消息内容</p>
<p>消息内容</p>
<p>消息内容</p>
<p>消息内容</p>
<Loading Color="Color.Info" IsActive="@active"></Loading>
</Box>
</Column>
<Column Size="Size.Size4">
<Box style="position: relative">
<p>消息内容</p>
<p>消息内容</p>
<p>消息内容</p>
<p>消息内容</p>
<Loading Color="Color.Link" IsActive="@active"></Loading>
</Box>
</Column>
<Column Size="Size.Size4">
<Box style="position: relative">
<p>消息内容</p>
<p>消息内容</p>
<p>消息内容</p>
<p>消息内容</p>
<Loading Color="Color.Success" IsActive="@active"></Loading>
</Box>
</Column>
<Column Size="Size.Size4">
<Box style="position: relative">
<p>消息内容</p>
<p>消息内容</p>
<p>消息内容</p>
<p>消息内容</p>
<Loading Color="Color.Warning" IsActive="@active"></Loading>
</Box>
</Column>
<Column Size="Size.Size4">
<Box style="position: relative">
<p>消息内容</p>
<p>消息内容</p>
<p>消息内容</p>
<p>消息内容</p>
<Loading Color="Color.Danger" IsActive="@active"></Loading>
</Box>
</Column>
</Columns>
<Button @onclick="() => active = !active">切换</Button>
@code {
private bool active = true;
}
消息内容
消息内容
消息内容
消息内容
消息内容
消息内容
消息内容
消息内容
消息内容
消息内容
消息内容
消息内容
<Columns>
<Column>
<Box style="position: relative">
<p>消息内容</p>
<p>消息内容</p>
<p>消息内容</p>
<p>消息内容</p>
<Loading IsActive="@active" IsPulse>脉冲旋转...</Loading>
</Box>
</Column>
<Column>
<Box style="position: relative">
<p>消息内容</p>
<p>消息内容</p>
<p>消息内容</p>
<p>消息内容</p>
<Loading IsActive="@active" Background="rgba(0, 0, 0, 0.5)" IconClass="fa-refresh">背景色...</Loading>
</Box>
</Column>
<Column>
<Box style="position: relative">
<p>消息内容</p>
<p>消息内容</p>
<p>消息内容</p>
<p>消息内容</p>
<Loading IsActive="@active" Text="更大的图标" IconClass="fa-circle-o-notch fa-lg"></Loading>
</Box>
</Column>
</Columns>
<Button @onclick="() => active=!active">切换</Button>
@code {
private bool active = true;
}
Id | 名称 | 年龄 | 性别 | 生日 |
---|---|---|---|---|
0 | name0 | 2 | Famle | 2024-10-25 18:58 |
1 | name1 | 3 | Male | 2024-10-24 18:58 |
2 | name2 | 4 | Male | 2024-10-23 18:58 |
3 | name3 | 5 | Famle | 2024-10-22 18:58 |
4 | name4 | 6 | Male | 2024-10-21 18:58 |
@using BulmaRazorServer.Pages.docs.components.datatable
<LoadingContainer IsActive="@loading">
<Field HasAddons>
<Control>
<Input @bind-Value="kw" placeholder="请输入名称关键字"/>
</Control>
<Control>
<Button Color="Color.Info" @onclick="search">
<Icon IconClass="fa fa-search"></Icon><span>搜索</span>
</Button>
</Control>
</Field>
<DataTable Data="data" TItem="Person" IsHoverable
IsBordered IsStriped IsFullwidth>
<ColumnsSlot>
<DataTableColumn Label="Id" Prop="Id"/>
<DataTableColumn Label="名称" Prop="Name"/>
<DataTableColumn Label="年龄" Prop="Age"/>
<DataTableColumn Label="性别" Prop="Gender"/>
<DataTableColumn Label="生日" Format="yyyy-MM-dd HH:mm" Prop="Birthday"/>
</ColumnsSlot>
<EmptySlot>
<Content>--没有数据--</Content>
</EmptySlot>
</DataTable>
<Pagination TotalCount="totalCount" PageIndex="pageIndex" PageSize="pageSize" OnPageChange="onPage"
NextText="下一页" PrevText="上一页" IsCentered/>
</LoadingContainer>
@code{
bool loading = false;
int pageIndex = 1;
int pageSize = 5;
int totalCount = 0;
string kw;
IEnumerable<Person> data;
//分页
async Task onPage(int page)
{
pageIndex = page;
await searchData();
}
async Task search()
{
pageIndex = 1;
await searchData();
}
//查询后台数据
async Task searchData()
{
loading = true;
await Task.Delay(1000);
data = Person.GetPageData(kw, pageIndex, pageSize, out int total);
totalCount = total;
loading = false;
}
protected override async Task OnInitializedAsync()
{
await base.OnInitializedAsync();
await searchData();
}
}
文档