Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(IDynamicObject): disable support complex object #5250

Merged
merged 12 commits into from
Jan 30, 2025
2 changes: 1 addition & 1 deletion src/BootstrapBlazor/BootstrapBlazor.csproj
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk.Razor">

<PropertyGroup>
<Version>9.3.1-beta02</Version>
<Version>9.3.1-beta03</Version>
</PropertyGroup>

<ItemGroup>
Expand Down
8 changes: 0 additions & 8 deletions src/BootstrapBlazor/Components/EditorForm/EditorItem.cs
Original file line number Diff line number Diff line change
Expand Up @@ -12,11 +12,7 @@ namespace BootstrapBlazor.Components;
/// EditorItem 组件
/// </summary>
/// <remarks>用于 EditorForm 的 FieldItems 模板内</remarks>
#if NET6_0_OR_GREATER
public class EditorItem<TModel, TValue> : ComponentBase, IEditorItem
#else
public class EditorItem<TValue> : ComponentBase, IEditorItem
#endif
{
/// <summary>
/// 获得/设置 绑定字段值
Expand Down Expand Up @@ -108,9 +104,6 @@ public class EditorItem<TValue> : ComponentBase, IEditorItem
/// 获得/设置 编辑模板
/// </summary>
[Parameter]
#if NET5_0
public RenderFragment<object>? EditTemplate { get; set; }
#elif NET6_0_OR_GREATER
public RenderFragment<TModel>? EditTemplate { get; set; }

RenderFragment<object>? IEditorItem.EditTemplate
Expand All @@ -126,7 +119,6 @@ public class EditorItem<TValue> : ComponentBase, IEditorItem
{
}
}
#endif

/// <summary>
/// 获得/设置 组件类型 默认为 null
Expand Down
30 changes: 0 additions & 30 deletions src/BootstrapBlazor/Components/Table/TableColumn.cs
Original file line number Diff line number Diff line change
Expand Up @@ -291,27 +291,6 @@ public class TableColumn<TItem, TType> : BootstrapComponentBase, ITableColumn
/// 获得/设置 显示模板
/// </summary>
[Parameter]
#if NET5_0
public RenderFragment<TableColumnContext<object, TType>>? Template { get; set; }

/// <summary>
/// 内部使用负责把 object 类型的绑定数据值转化为泛型数据传递给前端
/// </summary>
RenderFragment<object>? ITableColumn.Template
{
get => Template == null ? null : new RenderFragment<object>(context => builder =>
{
// 此处 context 为行数据
var fieldName = GetFieldName();
var value = Utility.GetPropertyValue<object, TType>(context, fieldName);
builder.AddContent(0, Template.Invoke(new TableColumnContext<object, TType>(context, value)));
});
set
{

}
}
#elif NET6_0_OR_GREATER
public RenderFragment<TableColumnContext<TItem, TType?>>? Template { get; set; }

/// <summary>
Expand All @@ -338,15 +317,11 @@ public class TableColumn<TItem, TType> : BootstrapComponentBase, ITableColumn

}
}
#endif

/// <summary>
/// 获得/设置 编辑模板
/// </summary>
[Parameter]
#if NET5_0
public RenderFragment<object>? EditTemplate { get; set; }
#elif NET6_0_OR_GREATER
public RenderFragment<TItem>? EditTemplate { get; set; }

RenderFragment<object>? IEditorItem.EditTemplate
Expand All @@ -362,16 +337,12 @@ public class TableColumn<TItem, TType> : BootstrapComponentBase, ITableColumn
{
}
}
#endif

/// <summary>
/// 获得/设置 搜索模板
/// </summary>
/// <value></value>
[Parameter]
#if NET5_0
public RenderFragment<object>? SearchTemplate { get; set; }
#elif NET6_0_OR_GREATER
public RenderFragment<TItem>? SearchTemplate { get; set; }

RenderFragment<object>? ITableColumn.SearchTemplate
Expand All @@ -387,7 +358,6 @@ public class TableColumn<TItem, TType> : BootstrapComponentBase, ITableColumn
{
}
}
#endif

/// <summary>
/// 获得/设置 过滤模板
Expand Down
4 changes: 2 additions & 2 deletions src/BootstrapBlazor/Dynamic/DataTableDynamicContext.cs
Original file line number Diff line number Diff line change
Expand Up @@ -123,7 +123,7 @@ private List<IDynamicObject> BuildItems()
{
if (!row.IsNull(col))
{
Utility.SetPropertyValue<object, object?>(d, col.ColumnName, row[col]);
Utility.SetPropertyValue<object, object?>(d, col.ColumnName, row[col], false);
}
}

Expand Down Expand Up @@ -200,7 +200,7 @@ public override async Task AddAsync(IEnumerable<IDynamicObject> selectedItems)
{
if (col.DefaultValue != DBNull.Value)
{
Utility.SetPropertyValue<object, object?>(dynamicObject, col.ColumnName, col.DefaultValue);
Utility.SetPropertyValue<object, object?>(dynamicObject, col.ColumnName, col.DefaultValue, false);
}
}
dynamicObject.Row = row;
Expand Down
8 changes: 4 additions & 4 deletions src/BootstrapBlazor/Dynamic/DataTableDynamicObject.cs
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ public class DataTableDynamicObject : DynamicObject
internal DataRow? Row { get; set; }

/// <summary>
///
/// <inheritdoc/>
/// </summary>
/// <param name="propertyName"></param>
/// <returns></returns>
Expand All @@ -33,16 +33,16 @@ public class DataTableDynamicObject : DynamicObject
if (!Row.Table.Columns[propertyName]!.AutoIncrement)
{
// 自增长列
Row[propertyName] = Utility.GetPropertyValue(this, propertyName);
Row[propertyName] = Utility.GetPropertyValue(this, propertyName, false);
}
}
ret = Row[propertyName];
}
return ret ?? Utility.GetPropertyValue(this, propertyName);
return ret ?? Utility.GetPropertyValue(this, propertyName, false);
}

/// <summary>
///
/// <inheritdoc/>
/// </summary>
/// <param name="propertyName"></param>
/// <param name="value"></param>
Expand Down
2 changes: 1 addition & 1 deletion src/BootstrapBlazor/Dynamic/DynamicItemChangedType.cs
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
namespace BootstrapBlazor.Components;

/// <summary>
///
/// DynamicItemChangedType 类型
/// </summary>
public enum DynamicItemChangedType
{
Expand Down
10 changes: 5 additions & 5 deletions src/BootstrapBlazor/Dynamic/DynamicObject.cs
Original file line number Diff line number Diff line change
Expand Up @@ -11,22 +11,22 @@ namespace BootstrapBlazor.Components;
public class DynamicObject : IDynamicObject
{
/// <summary>
///
/// <inheritdoc/>
/// </summary>
[AutoGenerateColumn(Ignore = true)]
public Guid DynamicObjectPrimaryKey { get; set; }

/// <summary>
///
/// 获得指定属性值方法
/// </summary>
/// <param name="propertyName"></param>
/// <returns></returns>
public virtual object? GetValue(string propertyName) => Utility.GetPropertyValue(this, propertyName);
public virtual object? GetValue(string propertyName) => Utility.GetPropertyValue(this, propertyName, false);

/// <summary>
///
/// 给指定属性设置值方法
/// </summary>
/// <param name="propertyName"></param>
/// <param name="value"></param>
public virtual void SetValue(string propertyName, object? value) => Utility.SetPropertyValue<object, object?>(this, propertyName, value);
public virtual void SetValue(string propertyName, object? value) => Utility.SetPropertyValue<object, object?>(this, propertyName, value, false);
}
Loading