/// <summary> /// 点击选择复选框时触发此方法 /// </summary> /// <param name="state"></param> /// <param name="val"></param> protected virtual async Task OnCheck(CheckboxState state, TItem val) { if (state == CheckboxState.Checked) { SelectedItems.Add(val); } else { SelectedItems.Remove(val); } if (SelectedRowsChanged.HasDelegate) { await SelectedRowsChanged.InvokeAsync(SelectedRows); } if (Items != null && HeaderCheckbox != null) { var headerCheckboxState = SelectedItems.Count == 0 && Items.Count() > 0 ? CheckboxState.UnChecked : (SelectedItems.Count == Items.Count() ? CheckboxState.Checked : CheckboxState.Mixed); await HeaderCheckbox.SetState(headerCheckboxState); } if (SelectedRowsChanged.HasDelegate) { await SelectedRowsChanged.InvokeAsync(SelectedRows); } }
/// <summary> /// 点击选择复选框时触发此方法 /// </summary> protected Func <CheckboxState, TItem, Task> OnCheck() => async(state, val) => { if (state == CheckboxState.Checked) { SelectedItems.Add(val); } else { SelectedItems.Remove(val); } if (SelectedRowsChanged.HasDelegate) { await SelectedRowsChanged.InvokeAsync(SelectedRows); } if (HeaderCheckbox != null) { var headerCheckboxState = SelectedItems.Count == 0 && Items.Any() ? CheckboxState.UnChecked : (SelectedItems.Count == Items.Count() ? CheckboxState.Checked : CheckboxState.Mixed); await HeaderCheckbox.SetState(headerCheckboxState); } if (SelectedRowsChanged.HasDelegate) { await SelectedRowsChanged.InvokeAsync(SelectedRows); } // https://gitee.com/LongbowEnterprise/BootstrapBlazor/issues/I1UYQG StateHasChanged(); };
/// <summary> /// 点击选择复选框时触发此方法 /// </summary> /// <param name="state"></param> /// <param name="val"></param> protected virtual async Task OnCheck(CheckboxState state, TItem val) { if (state == CheckboxState.Checked) { SelectedItems.Add(val); } else { SelectedItems.Remove(val); } if (Items != null && HeaderCheckbox != null) { var headerCheckboxState = SelectedItems.Count == 0 ? CheckboxState.UnChecked : (SelectedItems.Count == Items.Count() ? CheckboxState.Checked : CheckboxState.Mixed); await HeaderCheckbox.SetState(headerCheckboxState); } }