使用DataPager的dothtml表:
<bp:GridView DataSource="{value: UserRoleGroupListDTOs}" class="table table-bordered table-hover dataTable">
<Columns>
<%--<dot:GridViewTextColumn ValueBinding="{value: Name}" HeaderText="Název" Events.Click="{command: GoToDetail() }"/>--%>
<bp:GridViewTemplateColumn HeaderText="{resource: eCENTRE.Common.Resources.Admin.Common.Name}">
<dot:RouteLink Text="{value: Name}" RouteName="UserRoleGroupDetail" Param-Id="{value: Id}" />
</bp:GridViewTemplateColumn>
<bp:GridViewCheckBoxColumn ValueBinding="{value: IsBlocked}" HeaderText="{resource: eCENTRE.Common.Resources.Admin.Common.Forbidden}" IsEditable="true"/>
<bp:GridViewTemplateColumn HeaderText="{resource: eCENTRE.Common.Resources.Admin.Common.Delete}" CssClass="align center">
<%--<i class="glyphicon glyphicon-remove remove-from-list" style="color:red;">
</i>--%>
<dot:Button class="btn btn-default" Click="{command: _parent.DeleteUserRoleGroup(Id)}" Text="{resource: eCENTRE.Common.Resources.Admin.Common.Delete}"/>
</bp:GridViewTemplateColumn>
</Columns>
</bp:GridView>
<bp:DataPager DataSet="{value: UserRoleGroupListDTOs}"/>函数呈现器中的ViewModel和init:
public GridViewDataSet<UserRoleGroupListDTO> UserRoleGroupListDTOs { get; set; }
private readonly IUserRoleGroupFacade userRoleGroupDetailFacade;
private readonly UserRoleGroupCrudFacade crudFacade;
public UserRoleGroupListViewModel(IUserRoleGroupFacade userRoleGroupDetailFacade, UserRoleGroupCrudFacade crudFacade)
{
this.userRoleGroupDetailFacade = userRoleGroupDetailFacade;
this.crudFacade = crudFacade;
}
public override Task Init()
{
return base.Init();
}
public override Task PreRender()
{
UserRoleGroupListDTOs = new GridViewDataSet<UserRoleGroupListDTO>();
UserRoleGroupListDTOs.PagingOptions.PageSize = 10;
UserRoleGroupListDTOs.SortingOptions.SortDescending = true;
UserRoleGroupListDTOs.SortingOptions.SortExpression = nameof(UserRoleGroupListDTO.Name);
UserRoleGroupListDTOs.OnLoadingData = options => Task.Run(() => userRoleGroupDetailFacade.GetUserRoleGroupGridViewDataSetLoadedData(options)).Result;
return base.PreRender();
}Pager确实显示,但在单击任何按钮后,什么也没有发生。
如果我将初始化添加到Init方法中,分页程序可以工作,但viewModel有另一个错误。
发布于 2017-07-26 15:04:11
正如Tomas所写的,您创建了dataset的新实例,因此丢失了PagingOptions。
你只能在新请求中初始化数据集,而不能在回发中初始化。
public override Task Init()
{
if (!Context.IsPostBack)
{
UserRoleGroupListDTOs = new GridViewDataSet<UserRoleGroupListDTO>
{
PagingOptions = { PageSize = 10 },
SortingOptions =
{
SortDescending = true,
SortExpression = nameof(UserRoleGroupListDTO.Name)
},
};
}
return base.Init();
}然后,您必须在load或PreRender中设置延迟OnLoadingData
public override Task PreRender()
{
UserRoleGroupListDTOs.OnLoadingData =
options => Task.Run(() => userRoleGroupDetailFacade.GetUserRoleGroupGridViewDataSetLoadedData(options)).Result;
return base.PreRender();
}发布于 2017-07-26 14:56:16
您需要在Init阶段初始化寻呼机。PreRender事件在处理来自页的命令之后发生。您基本上是在用初始数据集覆盖数据集。
请参阅ViewModels Documentation中的图表。
https://stackoverflow.com/questions/45319149
复制相似问题