SideSky
SideSky

Reputation: 343

Radzen DataGrid Multiple Selection only filtered Items

I have a Razor Component (.net 6) where I make use of the Radzen DataGrid Multiple Selection.

    <RadzenDataGrid
     @ref="contactsGrid" Data="@contacts" AllowColumnResize="true" EditMode="DataGridEditMode.Single"
     RowUpdate="@OnUpdateRow" RowCreate="@OnCreateRow"
     AllowSorting="true" AllowFiltering="true" FilterCaseSensitivity="FilterCaseSensitivity.CaseInsensitive"
     TItem="ContactModel" AllowRowSelectOnRowClick="false" SelectionMode="DataGridSelectionMode.Multiple" @bind-Value=@selectedContacts>
        <Columns>

            <RadzenDataGridColumn TItem="ContactModel" Width="40px" Sortable="false" Filterable="false">
                <HeaderTemplate>
                    <RadzenCheckBox TriState="false" TValue="bool" Value="@(contacts.Any(i => selectedContacts != null && selectedContacts.Contains(i)))" Change="@(args => selectedContacts = args ? contacts.ToList() : null)" />
                </HeaderTemplate>
                <Template Context="contacts">
                    <RadzenCheckBox TriState="false" Value="@(selectedContacts != null && selectedContacts.Contains(contacts))" TValue="bool" Change=@(args => {  contactsGrid.SelectRow(contacts); }) />
                </Template>
            </RadzenDataGridColumn>

            <!-- FirstName -->
            <RadzenDataGridColumn TItem="ContactModel" Property="FirstName" Title="FirstName">
                <EditTemplate Context="contact">
                    <RadzenTextBox @bind-Value="contact.FirstName" Style="width:100%; display: block" Name="FirstName" />
                    <RadzenRequiredValidator Text="FirstName is required" Component="FirstName" Popup="true" />
                </EditTemplate>
            </RadzenDataGridColumn>
            <!-- LastName -->
            <RadzenDataGridColumn TItem="ContactModel" Property="LastName" Title="LastName">
                <EditTemplate Context="contact">
                    <RadzenTextBox @bind-Value="contact.LastName" Style="width:100%; display: block" Name="LastName" />
                    <RadzenRequiredValidator Text="LastName is required" Component="LastName" Popup="true" />
                </EditTemplate>
            </RadzenDataGridColumn>
        </Columns>
    </RadzenDataGrid>

In the HeaderTemplate you can directly select or deselect all items. Is it possible to change the function so that only all items are selected that match the filter? i.e. which items are currently displayed when I search for certain items using the filter option?

Upvotes: 0

Views: 2633

Answers (1)

AnC Dev
AnC Dev

Reputation: 163

you can use contactsGrid.View to get visible rows. try to use contactsGrid.View instead of selectedContacts.

Upvotes: 1

Related Questions