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

Blazor WebApp中SfDataForm条件显示FormItem异常求助

Blazor WebApp中Syncfusion SfDataForm条件显示FormItem问题

在Blazor WebApp中使用Syncfusion SfDataForm时,希望根据某一FormItem的选择结果,条件显示其他FormItem。但目前实现存在两个问题:

  • 条件触发显示的FormItem会被追加到表单末尾,而非预期位置
  • 切换条件时,会出现FormItem重复显示的情况

当前代码实现:

<FormItem Field="@nameof(Tank.IsDoubleTank)" ColumnSpan="6" />
<FormItem Field="@nameof(Tank.Volume)" ColumnSpan="3" />
<FormItem Field="@nameof(Tank.Weight)" ColumnSpan="3" />
@if ((item as Tank).IsDoubleTank)
{
    <FormItem Field="@nameof(Tank.Weight2)" ColumnSpan="3" />
}
<FormItem Field="@nameof(Tank.WorkingPressure)" ColumnSpan="3" />
<FormItem Field="@nameof(Tank.TestPressure)" ColumnSpan="3" />
<FormItem Field="@nameof(Tank.SerialNumber)" ColumnSpan="6" />
@if ((item as Tank).IsDoubleTank)
{
    <FormItem Field="@nameof(Tank.SerialNumber2)" ColumnSpan="3" />
}
<FormItem Field="@nameof(Tank.TankType)" ColumnSpan="6" />

异常显示效果:
异常显示效果

解决方法

直接用@if包裹FormItem会破坏SfDataForm的内部布局渲染逻辑,导致位置错乱和重复渲染。推荐使用FormItem自带的Visible属性实现条件显示:

  1. 替换@if为Visible属性绑定
    将条件渲染的FormItem改为通过Visible属性绑定控制显示:

    <FormItem Field="@nameof(Tank.IsDoubleTank)" ColumnSpan="6" />
    <FormItem Field="@nameof(Tank.Volume)" ColumnSpan="3" />
    <FormItem Field="@nameof(Tank.Weight)" ColumnSpan="3" />
    <FormItem Field="@nameof(Tank.Weight2)" ColumnSpan="3" Visible="@((item as Tank).IsDoubleTank)" />
    <FormItem Field="@nameof(Tank.WorkingPressure)" ColumnSpan="3" />
    <FormItem Field="@nameof(Tank.TestPressure)" ColumnSpan="3" />
    <FormItem Field="@nameof(Tank.SerialNumber)" ColumnSpan="6" />
    <FormItem Field="@nameof(Tank.SerialNumber2)" ColumnSpan="3" Visible="@((item as Tank).IsDoubleTank)" />
    <FormItem Field="@nameof(Tank.TankType)" ColumnSpan="6" />
    
  2. 确保属性变更能触发UI更新
    确保Tank类的IsDoubleTank属性支持双向绑定:

    • 如果是Razor组件的模型,给属性添加[BindProperty]特性
    • 如果是独立类,实现INotifyPropertyChanged接口,在属性变更时触发PropertyChanged事件

这样就能保证条件显示的FormItem始终处于预期位置,且切换条件时不会出现重复渲染的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 04:02:37