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;
							 | 
						||
| 
								 | 
							
								        });
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								}
							 |