DotVVM - GridViewDataSet不加载任何数据

时间:2018-02-01 14:01:29

标签: c# dotvvm

我遇到的问题是我的facade方法永远不会被调用,所以我的返回项目总是为零。我不知道为什么会发生这种情况,因为它至少应该在初始页面加载时加载项目。我也几乎完全相同ViewModel,它可以正常工作。

以下是我的viewmodel,我想将FavouriteCommodities加载到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);
}

这是我的立面中的方法,永远不会被解雇。

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;
    }         
}

我也想知道是否有可能在用户点击事件上加载这些项目。当我查看namespace DotVVM.Framework.Controls时,我没有找到任何有用的东西。

1 个答案:

答案 0 :(得分:0)

所以我在一段时间后发现Repeater组件没有触发方法。我必须在GridView中仅使用view个组件。