[feat] 查询字段,支持指定View视图,之前嵌入查询条件

This commit is contained in:
智能大石头 2025-01-15 14:15:45 +08:00
parent b63b20749a
commit b0317f3d17
8 changed files with 22 additions and 18 deletions

View File

@ -38,7 +38,7 @@
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.SpaServices.Extensions" Version="9.0.0" />
<PackageReference Include="NewLife.Redis.Extensions" Version="6.0.2025.103-beta1037" />
<PackageReference Include="NewLife.Redis.Extensions" Version="6.1.2025.114-beta0537" />
<PackageReference Include="NewLife.Stardust.Extensions" Version="3.3.2025.109-beta1540" />
</ItemGroup>

View File

@ -23,7 +23,7 @@
</PropertyGroup>
<ItemGroup>
<PackageReference Include="NewLife.Core" Version="11.3.2025.109-beta0435" />
<PackageReference Include="NewLife.Core" Version="11.3.2025.114-beta0535" />
<PackageReference Include="NewLife.Stardust.Extensions" Version="3.3.2025.109-beta1540" />
</ItemGroup>

View File

@ -99,10 +99,10 @@
<Compile Include="..\NewLife.CubeNC\WebMiddleware\TracerMiddleware.cs" Link="WebMiddleware\TracerMiddleware.cs" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="NewLife.Core" Version="11.3.2025.109-beta0435" />
<PackageReference Include="NewLife.IP" Version="2.2.2025.101" />
<PackageReference Include="NewLife.Core" Version="11.3.2025.114-beta0535" />
<PackageReference Include="NewLife.IP" Version="2.2.2025.109-beta1740" />
<PackageReference Include="NewLife.Stardust" Version="3.3.2025.109-beta1540" />
<PackageReference Include="NewLife.XCode" Version="11.17.2025.109-beta1237" />
<PackageReference Include="NewLife.XCode" Version="11.17.2025.114-beta0536" />
</ItemGroup>
<ItemGroup>

View File

@ -508,9 +508,11 @@ public partial class EntityController<TEntity, TModel>
TEntity CopyFrom(TEntity entity, IModel source, IList<FieldItem> fields)
{
if (fields == null || fields.Count == 0) return entity;
foreach (var fi in fields)
{
entity.SetItem(fi.Name, source[fi.Name]);
if (fi != null) entity.SetItem(fi.Name, source[fi.Name]);
}
return entity;

View File

@ -50,10 +50,10 @@
</PackageReference>
</ItemGroup>
<ItemGroup>
<PackageReference Include="NewLife.Core" Version="11.3.2025.109-beta0435" />
<PackageReference Include="NewLife.IP" Version="2.2.2025.101" />
<PackageReference Include="NewLife.Core" Version="11.3.2025.114-beta0535" />
<PackageReference Include="NewLife.IP" Version="2.2.2025.109-beta1740" />
<PackageReference Include="NewLife.Stardust" Version="3.3.2025.109-beta1540" />
<PackageReference Include="NewLife.XCode" Version="11.17.2025.109-beta1237" />
<PackageReference Include="NewLife.XCode" Version="11.17.2025.114-beta0536" />
</ItemGroup>
<ItemGroup>

View File

@ -9,4 +9,9 @@ public class SearchField : DataField
/// 如果没有选中任何项则没有返回此时会强制覆盖Url参数中的同名字段避免取消选中无效的问题。
/// </remarks>
public Boolean Multiple { get; set; }
#if MVC
/// <summary>视图。MVC特有允许针对字段定义视图</summary>
public String View { get; set; }
#endif
}

View File

@ -10,13 +10,6 @@
var fi = fact.MasterTime;
var fields = ViewBag.SearchFields as FieldCollection;
// var builder = new SearchBuilder(fact.Table.DataTable);
// var columns = builder.GetColumns() as List<IDataColumn>;
// if (columns.Any(e => e.Name.EqualIgnoreCase("DistrictId")))
// columns.RemoveAll(e => e.Name.EqualIgnoreCase("ProvinceId", "CityId"));
// if (columns.Any(e => e.Name.EqualIgnoreCase("CityId")))
// columns.RemoveAll(e => e.Name.EqualIgnoreCase("ProvinceId"));
var dic = new Dictionary<Int32, String>();
dic[1] = "是";
dic[0] = "否";
@ -28,7 +21,11 @@
@foreach (SearchField field in fields)
{
var name = field.Name.ToLower();
if (field.Name.EqualIgnoreCase("Enable") && field.Type == typeof(Boolean))
if (!field.View.IsNullOrEmpty())
{
@await Html.PartialAsync(field.View, field)
}
else if (field.Name.EqualIgnoreCase("Enable") && field.Type == typeof(Boolean))
{
@await Html.PartialAsync("_Enable")
}

View File

@ -17,6 +17,6 @@
<None Remove="Entity\**" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="NewLife.XCode" Version="11.17.2025.109-beta1237" />
<PackageReference Include="NewLife.XCode" Version="11.17.2025.114-beta0536" />
</ItemGroup>
</Project>