0

I am stuck on problem where my facade method is never called so my returned items are always zero. I dont exactly know why this happens since it should at least load items on initial page load. Also I got almost identical ViewModel where it works fine.

Here is my viewmodel where I want to load FavouriteCommodities into GridViewDataSet

//initialized via constructor
private readonly FavouriteCommodityFacade _favouriteCommodityFacade;
public GridViewDataSet<FavouriteCommodityDTO> GridViewDataSetItems { get; set; }
public int PageSize { get; set; } = 10;
private ISortingOptions DefaultSortOptions => new SortingOptions();
public override Task Init()
{
    GridViewDataSetItems = new GridViewDataSet<FavouriteCommodityDTO>()
        {
        PagingOptions = { PageSize = PageSize },
        SortingOptions = DefaultSortOptions
        };           
    return base.Init();
}

public override Task PreRender()
{
    if (!Context.IsPostBack || GridViewDataSetItems.IsRefreshRequired)
    {
        LoadData();
    }
    return base.PreRender();
}

public void LoadData()
{
    FavouriteCommodityGroups = _userAccountFavouriteProductsFacade.GetAllFavouriteProductsToUser();
    //this never fires my facade method below 
    GridViewDataSetItems.OnLoadingData = option => _favouriteCommodityFacade.GetAssignedFavouriteProductsToGroup(option);
}

Here is my method in my facade which is never fired.

public GridViewDataSetLoadedData<FavouriteCommodityDTO> 
    GetAssignedFavouriteProductsToGroup (IGridViewDataSetLoadOptions gridViewDataSetLoadOption)
{
    using (unitOfWorkProvider.Create())
    {
        var query = _favouriteCommodityByChosenGroupQuery();
        FavouriteProductByGroupFilter.FavouriteGroupId = 16;
        query.Filter = FavouriteProductByGroupFilter;
        var x = GetGridViewDataSetLoadedData(gridViewDataSetLoadOption, query);
        return x.Result;
    }         
}

I am also wondering if there is possibility to load those items on user click event. When I looked into namespace DotVVM.Framework.Controls I didnt find anything useful for that.

Martin
  • 455
  • 1
  • 11
  • 34

1 Answers1

0

So I figure out after a while that Repeater component not triggering method. I had to use only GridView component in view.

Martin
  • 455
  • 1
  • 11
  • 34
  • Oh, you are right - `Repeater` does not trigger this method. I recommend using the manual way - just call `LoadFromQueryable` on the `GridViewDataSet`. – Tomáš Herceg Feb 06 '18 at 10:20