88 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
			
		
		
	
	
			88 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
@page "/TEST"
 | 
						|
@layout EmptyLayout
 | 
						|
 | 
						|
 | 
						|
 | 
						|
<RadzenStack Orientation="Orientation.Horizontal" JustifyContent="JustifyContent.Center" AlignItems="AlignItems.Center" Gap="0.5rem" class="rz-p-12">
 | 
						|
    <RadzenLabel Text="Select Value" Component="DropDownDataGridBindValue" />
 | 
						|
    <RadzenDropDownDataGrid @ref=grid Data="@data" ColumnWidth="200px" TValue="IDictionary<string, object>"
 | 
						|
                            AllowFiltering="true" AllowSorting="true" Value="@selectedItem" Change="@OnChange">
 | 
						|
                            @* TextProperty="@(PropertyAccess.GetDynamicPropertyExpression("LastName", typeof(string)))"> *@
 | 
						|
        <ValueTemplate>
 | 
						|
            @string.Join(", ", columns.Where(c => c.Value == typeof(string)).Take(grid.MaxSelectedLabels).Select(c => context[c.Key]))
 | 
						|
        </ValueTemplate>
 | 
						|
        <Columns>
 | 
						|
            @foreach (var column in columns)
 | 
						|
            {
 | 
						|
                <RadzenDropDownDataGridColumn @key=@column.Key Title="@column.Key" Type="column.Value">
 | 
						|
                                              @* Property="@PropertyAccess.GetDynamicPropertyExpression(column.Key, column.Value)"> *@
 | 
						|
                    <Template>
 | 
						|
                        @context[@column.Key]
 | 
						|
                    </Template>
 | 
						|
                </RadzenDropDownDataGridColumn>
 | 
						|
            }
 | 
						|
        </Columns>
 | 
						|
    </RadzenDropDownDataGrid>
 | 
						|
</RadzenStack>
 | 
						|
 | 
						|
 | 
						|
@code {
 | 
						|
    RadzenDropDownDataGrid<IDictionary<string, object>> grid;
 | 
						|
    IDictionary<string, object> selectedItem;
 | 
						|
 | 
						|
    public IEnumerable<IDictionary<string, object>> data { get; set; }
 | 
						|
 | 
						|
    public IDictionary<string, Type> columns { get; set; }
 | 
						|
 | 
						|
    public enum EnumTest
 | 
						|
    {
 | 
						|
        EnumValue1,
 | 
						|
        EnumValue2
 | 
						|
    }
 | 
						|
 | 
						|
    void OnChange(object value)
 | 
						|
    {
 | 
						|
        selectedItem = (IDictionary<string, object>)value;
 | 
						|
    }
 | 
						|
 | 
						|
    protected override async Task OnInitializedAsync()
 | 
						|
    {
 | 
						|
        await base.OnInitializedAsync();
 | 
						|
 | 
						|
        columns = new Dictionary<string, Type>()
 | 
						|
        {
 | 
						|
            { "EmployeeID", typeof(int) },
 | 
						|
            { "MyColumn", typeof(EnumTest) },
 | 
						|
            { "FirstName", typeof(string) },
 | 
						|
            { "LastName", typeof(string) },
 | 
						|
            { "HireDate", typeof(DateTime) },
 | 
						|
        };
 | 
						|
 | 
						|
        foreach (var i in Enumerable.Range(0, 50))
 | 
						|
        {
 | 
						|
            columns.Add($"Column{i}", typeof(string));
 | 
						|
        }
 | 
						|
 | 
						|
        data = Enumerable.Range(0, 100).Select(i =>
 | 
						|
        {
 | 
						|
            var row = new Dictionary<string, object>();
 | 
						|
 | 
						|
            foreach (var column in columns)
 | 
						|
            {
 | 
						|
                row.Add(
 | 
						|
                    column.Key,
 | 
						|
                    column.Value == typeof(EnumTest)
 | 
						|
                        ? (i % 2 == 0 ? EnumTest.EnumValue1 : EnumTest.EnumValue2)
 | 
						|
                        : column.Value == typeof(int)
 | 
						|
                            ? i
 | 
						|
                            : column.Value == typeof(DateTime)
 | 
						|
                                ? DateTime.Now.AddMonths(i)
 | 
						|
                                : $"{column.Key}{i}"
 | 
						|
                );
 | 
						|
            }
 | 
						|
 | 
						|
            return row;
 | 
						|
        });
 | 
						|
    }
 | 
						|
}
 |