How to use generic DataAdaptor of T?

When I inherit my CustomDataAdaptor from DataAdaptor<T> instead of DataAdaptor, I get:

System.InvalidCastException: Unable to cast object of type 'MyProject.Pages.CustomDataAdaptor' to type 'Syncfusion.Blazor.DataAdaptor'.
   at Syncfusion.Blazor.Data.BaseAdaptor..ctor(Type type, Object parentComponent, DataManager dataManagerInstance)
   at Syncfusion.Blazor.DataManager.OnInitializedAsync()
   at Microsoft.AspNetCore.Components.ComponentBase.RunInitAndSetParametersAsync()

<SfAutoComplete TValue="int?" TItem="InternalOrderSearchItem" FilterType="Syncfusion.Blazor.DropDowns.FilterType.StartsWith">


 <SfDataManager AdaptorInstance="@typeof(CustomQueryAdaptor)" Adaptor="Adaptors.CustomAdaptor" />

</SfAutoComplete>


public class CustomQueryAdaptor : DataAdaptor<InternalOrderSearchItem>
{
    public override async Task<object> ReadAsync(DataManagerRequest request, string additionalParam = default!)
    {
        //var result, count = await ...
        return request.RequiresCounts
            ? new DataResult<InternalOrderSearchItem> { Result = result, Count = count }
            : dataSource;
    }
}






1 Reply 1 reply marked as answer

MS Monisha Saravanan Syncfusion Team January 26, 2024 05:30 AM UTC

Hi Turand,


Greetings from Syncfusion.


We would like to inform you that by rendering custom adaptor as a component we can extend the DataAdptor class. So we suggest you to try rendering custom adaptor as a component.


In the below documentation we have rendered custom adaptor as a component. Kindly check the below documentation for your reference.


Reference: https://blazor.syncfusion.com/documentation/datagrid/custom-binding#custom-adaptor-as-component


Please let us know if you have further queries.


Regards,

Monisha


Marked as answer
Loader.
Up arrow icon