public override async Task SetParametersAsync(ParameterView parameters) { await base.SetParametersAsync(parameters); if (parameters.GetValueOrDefault <object>(nameof(DataSource)) != null) { rows = (DataSource as IEnumerable).Cast <object>().ToList(); DataType = DataSource.GetType().GetGenericArguments()[0]; if (AutoGenerateColumns && !headerInitilized) { headerInitilized = true; DataType.GetProperties().Where(p => !IgnoreProperties.Contains(p.Name)).Reverse().ToList().ForEach(property => { if (Headers.Any(x => x.Property?.Name == property.Name)) { return; } var attrs = property.GetCustomAttributes(true); var columnConfig = attrs.OfType <TableColumnAttribute>().FirstOrDefault() ?? new TableColumnAttribute() { Text = property.Name }; Headers.Insert(0, new TableHeader() { Eval = row => { var value = property.GetValue(row); if (string.IsNullOrWhiteSpace(columnConfig.Format)) { return(value); } if (value == null) { return(null); } try { return(Convert.ToDateTime(value).ToString(columnConfig.Format)); } catch (InvalidCastException) { throw new BlazuiException("仅日期列支持 Format 参数"); } }, IsCheckBox = property.PropertyType == typeof(bool) || Nullable.GetUnderlyingType(property.PropertyType) == typeof(bool), Property = property, Text = columnConfig.Text, Width = columnConfig.Width }); } ); } SelectedRows = new HashSet <object>(); chkAll?.MarkAsRequireRender(); ResetSelectAllStatus(); } }
protected void ChangeRowStatus(Status status, object row) { RequireRender = true; chkAll.MarkAsRequireRender(); if (status == Status.Checked) { SelectedRows.Add(row); } else { SelectedRows.Remove(row); } if (SelectedRowsChanged.HasDelegate) { _ = SelectedRowsChanged.InvokeAsync(SelectedRows); } ResetSelectAllStatus(); }
public override async Task SetParametersAsync(ParameterView parameters) { await base.SetParametersAsync(parameters); if (parameters.GetValueOrDefault <object>(nameof(DataSource)) != null) { rows = (DataSource as IEnumerable).Cast <object>().ToList(); DataType = DataSource.GetType().GetGenericArguments()[0]; if (AutoGenerateColumns && !headerInitilized) { headerInitilized = true; DataType.GetProperties().Where(p => !IgnoreProperties.Contains(p.Name)).Reverse().ToList().ForEach(property => { if (Headers.Any(x => x.Property?.Name == property.Name)) { return; } var attrs = property.GetCustomAttributes(true); var text = attrs.OfType <DisplayAttribute>().FirstOrDefault()?.Name; if (string.IsNullOrWhiteSpace(text)) { text = attrs.OfType <DescriptionAttribute>().FirstOrDefault()?.Description; } var width = attrs.OfType <WidthAttribute>().FirstOrDefault()?.Width; Headers.Insert(0, new TableHeader() { Eval = row => { return(property.GetValue(row)); }, IsCheckBox = property.PropertyType == typeof(bool) || Nullable.GetUnderlyingType(property.PropertyType) == typeof(bool), Property = property, Text = text ?? property.Name, Width = width }); } ); } chkAll?.MarkAsRequireRender(); ResetSelectAllStatus(); } }