/// <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();
        };
Example #3
0
        /// <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);
            }
        }