Compare commits

...

9 Commits

Author SHA1 Message Date
Vladimir Enchev
6b3eda7c4a Radzen.Blazor updated 2021-04-14 10:49:19 +03:00
Vladimir Enchev
68243ee844 Version updated 2021-04-14 10:39:26 +03:00
Vladimir Enchev
6196daeead Numeric focus appearance improved 2021-04-14 10:38:16 +03:00
Vladimir Enchev
81c420c2e3 DropDownDataGrid AllowFilteringByAllStringColumns should respect column Filterable property
Fix #98
2021-04-14 09:59:56 +03:00
Vladimir Enchev
c533da896c DropDownDataGrid selected item not respected if SelectedValue is set 2021-04-13 09:54:49 +03:00
Vladimir Enchev
29f5f33a12 DataGrid pager not reset to first page after sort
Fix #95
2021-04-13 09:48:20 +03:00
Vladimir Enchev
aa7734d72b DropDownDataGrid AllowFilteringByAllStringColumns will raise exception if some of the column values is null
Fix #96
2021-04-13 09:41:12 +03:00
Atanas Korchev
e5a2132dfd Selecting a tree item does not remove prior selection. 2021-04-12 10:30:41 +03:00
Vladimir Enchev
f766594ef3 Record number column added to DataGrid totals demo 2021-04-08 19:51:51 +03:00
7 changed files with 47 additions and 30 deletions

View File

@@ -8,7 +8,7 @@
<IsPackable>true</IsPackable>
<PackageId>Radzen.Blazor</PackageId>
<Product>Radzen.Blazor</Product>
<Version>3.2.2</Version>
<Version>3.2.3</Version>
<Copyright>Radzen Ltd.</Copyright>
<Authors>Radzen Ltd.</Authors>
<Description>Native Blazor UI components by Radzen Ltd.</Description>

View File

@@ -21,12 +21,6 @@
@Template(selectedItem)
</label>
}
else if (SelectedValue != null)
{
<label class="rz-dropdown-label rz-inputtext rz-corner-all" onclick="@OpenPopupScript()" style="width:100%;">
@PropertyAccess.GetItemOrValueFromProperty(SelectedValue, TextProperty)
</label>
}
else if (selectedItem != null)
{
<label class="rz-dropdown-label rz-inputtext " onclick="@OpenPopupScript()" style="width:100%;">
@@ -56,6 +50,12 @@
}
</label>
}
else if (SelectedValue != null)
{
<label class="rz-dropdown-label rz-inputtext rz-corner-all" onclick="@OpenPopupScript()" style="width:100%;">
@PropertyAccess.GetItemOrValueFromProperty(SelectedValue, TextProperty)
</label>
}
else if (!string.IsNullOrEmpty(Placeholder))
{
<label class="rz-dropdown-label rz-inputtext rz-placeholder" onclick="@OpenPopupScript()" style="width:100%;">
@@ -197,7 +197,8 @@
private string GetPropertyFilterExpression(string property, string filterCaseSensitivityOperator)
{
return $"{property}{filterCaseSensitivityOperator}.{Enum.GetName(typeof(StringFilterOperator), FilterOperator)}(@0)";
var p = $@"({property} == null ? """" : {property})";
return $"{p}{filterCaseSensitivityOperator}.{Enum.GetName(typeof(StringFilterOperator), FilterOperator)}(@0)";
}
private bool IsColumnFilterPropertyTypeString(RadzenGridColumn<object> column)
@@ -224,7 +225,7 @@
if (AllowFilteringByAllStringColumns)
{
query = query.Where(string.Join(" || ", grid.ColumnsCollection.Where(c => IsColumnFilterPropertyTypeString(c))
query = query.Where(string.Join(" || ", grid.ColumnsCollection.Where(c => c.Filterable && IsColumnFilterPropertyTypeString(c))
.Select(c => GetPropertyFilterExpression(c.GetFilterProperty(), filterCaseSensitivityOperator))),
FilterCaseSensitivity == FilterCaseSensitivity.CaseInsensitive ? searchText.ToLower() : searchText);
}

View File

@@ -977,6 +977,7 @@
column.SetFilterValue(null);
column.SetFilterValue(null, false);
skip = 0;
CurrentPage = 0;
await InvokeAsync(Reload);
}
@@ -1202,6 +1203,7 @@
{
column.SetFilterValue(args.Value, isFirst);
skip = 0;
CurrentPage = 0;
InvokeAsync(Reload);
}
}
@@ -1241,6 +1243,7 @@
{
var p = IsOData() ? property.Replace('.', '/') : PropertyAccess.GetProperty(property);
skip = 0;
CurrentPage = 0;
orderBy = orderBy == $"{p} desc" || orderBy == null || orderBy.IndexOf(p) == -1 ? $"{p} asc" : $"{p} desc";
InvokeAsync(Reload);
}
@@ -1249,6 +1252,7 @@
{
var p = IsOData() ? property.Replace('.', '/') : PropertyAccess.GetProperty(property);
skip = 0;
CurrentPage = 0;
orderBy = $"{p} desc";
InvokeAsync(Reload);
}

View File

@@ -6,16 +6,16 @@
@if (Visible)
{
<div @ref="@Element" @attributes="Attributes" class="@GetCssClass()" style="@Style" id="@GetId()">
<ul class="rz-tree-container">
<ul class="rz-tree-container">
<CascadingValue Value=this>
@ChildContent
</CascadingValue>
@if (Data != null && Levels.Any())
{
<CascadingValue Value=this>
@RenderChildren(Data, 0)
</CascadingValue>
}
{
<CascadingValue Value=this>
@RenderChildren(Data, 0)
</CascadingValue>
}
</ul>
</div>
}
@@ -43,13 +43,14 @@
public IEnumerable Data { get; set; }
[Parameter]
public object Value { get; set;}
public object Value { get; set; }
[Parameter]
public EventCallback<object> ValueChanged { get; set; }
void RenderTreeItem(RenderTreeBuilder builder, object data, RenderFragment<RadzenTreeItem> template, Func<object, string> text,
Func<object, bool> hasChildren, Func<object, bool> expanded, Func<object, bool> selected)
void RenderTreeItem(RenderTreeBuilder builder, object data, RenderFragment<RadzenTreeItem> template, Func<object,
string> text,
Func<object, bool> hasChildren, Func<object, bool> expanded, Func<object, bool> selected)
{
builder.OpenComponent<RadzenTreeItem>(0);
builder.AddAttribute(1, nameof(RadzenTreeItem.Text), text(data));
@@ -162,12 +163,19 @@
return PropertyAccess.Getter<T>(data, property);
}
protected override void OnParametersSet()
public override async Task SetParametersAsync(ParameterView parameters)
{
if (Value == null)
if (parameters.DidParameterChange(nameof(Value), Value))
{
SelectedItem = null;
var value = parameters.GetValueOrDefault<object>(nameof(Value));
if (value == null)
{
SelectedItem = null;
}
}
await base.SetParametersAsync(parameters);
}
internal void AddLevel(RadzenTreeLevel level)

View File

@@ -1,5 +1,5 @@
$numeric-line-height: 1.5rem !default;
$numeric-input-padding: 1px 12px 1px 1px;
$numeric-input-padding: 1px 12px 1px 0.5rem;
$numeric-button-width: 0.875rem !default;
$numeric-button-height: $numeric-button-width !default;
$numeric-button-border-radius: 2px !default;
@@ -14,20 +14,19 @@ $numeric-button-color: $white !default;
@extend %input;
padding: 0px;
input[type='number'],
input[type='text'] {
-moz-appearance: textfield;
width: 100%;
height: 100%;
border: none;
background-color: transparent;
line-height: $numeric-line-height;
text-align: inherit;
padding: $numeric-input-padding;
&:focus {
outline: none;
}
&::-webkit-inner-spin-button,
&::-webkit-outer-spin-button {
-webkit-appearance: none;

View File

@@ -3,7 +3,7 @@
@using RadzenBlazorDemos.Data
@using RadzenBlazorDemos.Models.Northwind
@using Microsoft.EntityFrameworkCore
@using System.Linq
@inject NorthwindContext dbContext
<h1>DataGrid Footer Totals</h1>
@@ -18,8 +18,13 @@
else
{
<RadzenGrid @ref="ordersGrid" AllowFiltering="true" AllowPaging="true" PageSize="3" AllowSorting="true"
Data="@dbContext.Orders.Include("Customer").Include("Employee")" TItem="Order">
Data="@orders" TItem="Order">
<Columns>
<RadzenGridColumn Width="50px" TItem="Order" Title="Nr." Filterable="false" Sortable="false" TextAlign="TextAlign.Center">
<Template>
@(orders.IndexOf(context) + 1)
</Template>
</RadzenGridColumn>
<RadzenGridColumn Width="200px" TItem="Order" Property="OrderID" Title="Order ID">
<FooterTemplate>
Displayed orders: <b>@ordersGrid.View.Count()</b> of <b>@orders.Count()</b>
@@ -56,7 +61,7 @@ else
@code {
RadzenGrid<Order> ordersGrid;
IEnumerable<Order> orders;
IList<Order> orders;
protected override void OnInitialized()
{

View File

@@ -5,7 +5,7 @@
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Radzen.Blazor" Version="3.2.2" />
<PackageReference Include="Radzen.Blazor" Version="3.2.3" />
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="5.0.0" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="5.0.0" />
<PackageReference Include="DocumentFormat.OpenXml" Version="2.11.3" />