You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Blazor环境下Radzen DataGrid非可见列OData自定义过滤实现咨询

Radzen DataGrid 自定义OData筛选实现方案

完全可以实现你需要的自定义筛选需求,具体实现步骤如下:

  • 第一步:在页面中定义自定义筛选参数的绑定变量,以及Radzen DataGrid的组件引用
// 自定义筛选参数,和筛选区的输入控件绑定
private string? FilterHiddenField1 { get; set; }
private int? FilterHiddenField2 { get; set; }
// Radzen DataGrid 组件引用
private RadzenDataGrid<YourBusinessDataType>? DataGridRef;
  • 第二步:自定义网格的LoadData事件处理逻辑,这是拼接自定义OData筛选条件的核心环节
private async Task OnGridLoadData(LoadDataArgs args)
{
    // 先获取Radzen内置生成的排序、分页、内置列过滤参数
    var query = odataContext.YourBusinessDataSet
        .OrderBy(args.OrderBy)
        .Skip(args.Skip ?? 0)
        .Take(args.Top ?? 20);

    // 追加自定义筛选条件,支持未在网格中展示的字段
    if (!string.IsNullOrEmpty(FilterHiddenField1))
    {
        query = query.Where(x => x.HiddenField1.Contains(FilterHiddenField1));
    }
    if (FilterHiddenField2.HasValue)
    {
        query = query.Where(x => x.HiddenField2 == FilterHiddenField2.Value);
    }

    // 执行OData查询,获取数据和总条数
    var data = await query.ToListAsync();
    var total = await query.CountAsync();

    // 绑定数据到网格
    DataGridRef.Data = data;
    DataGridRef.TotalItems = total;
}
  • 第三步:给搜索按钮绑定点击事件,点击时触发网格重新加载
private async Task OnSearchButtonClick()
{
    // 调用Reload方法会重新触发LoadData事件,自动携带最新的自定义筛选参数
    await DataGridRef.Reload();
}
  • Razor页面组件绑定示例
<!-- 自定义筛选区域 -->
<RadzenTextBox @bind-Value="FilterHiddenField1" Placeholder="筛选隐藏字段1" />
<RadzenNumeric @bind-Value="FilterHiddenField2" Placeholder="筛选隐藏字段2" />
<RadzenButton Text="搜索" Click="@OnSearchButtonClick" />

<!-- Radzen DataGrid 配置 -->
<RadzenDataGrid TItem="YourBusinessDataType" 
                @ref="DataGridRef" 
                LoadData="@OnGridLoadData"
                AllowPaging="true"
                AllowFiltering="true">
    <Columns>
        <!-- 仅配置需要展示的列即可,不需要展示的筛选字段不用在这里声明 -->
        <RadzenDataGridColumn TItem="YourBusinessDataType" Property="VisibleField1" Title="可见列1" />
        <RadzenDataGridColumn TItem="YourBusinessDataType" Property="VisibleField2" Title="可见列2" />
    </Columns>
</RadzenDataGrid>

如果你使用Radzen官方封装的OData服务扩展来获取数据,也可以直接在对应服务的查询方法中传入自定义的Filter字符串参数,自定义筛选逻辑会和网格内置的筛选条件自动合并生效。

内容的提问来源于stack exchange,提问作者Matt

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 14:54:07