0

我有一个绑定到 GridViewDataSet 的 GridView。网格与寻呼机一起正确显示。当您尝试更改页面时,会在后台引发错误并且页面不会更改。

查看代码

<bs:GridView DataSource="{value: Skus}" class="table table-striped table-bordered">
    <Columns>
        <dot:GridViewTextColumn ValueBinding="{value: RecordType}" HeaderText="Category" />
        <dot:GridViewTextColumn ValueBinding="{value: ContourSku}" HeaderText="Contour SKU" />
        <dot:GridViewTextColumn ValueBinding="{value: ProductName}" HeaderText="Product Name" />
        <dot:GridViewTextColumn ValueBinding="{value: CdsCost}" FormatString="c" HeaderText="CDS Cost" />
        <dot:GridViewTextColumn ValueBinding="{value: ListPrice}" FormatString="c" HeaderText="List Price" />
        <dot:GridViewTextColumn ValueBinding="{value: ExtendedMrc}" FormatString="c" HeaderText="MRC" />

        <dot:GridViewTemplateColumn HeaderText="Active" AllowSorting="false">
            <ContentTemplate>
                <bp:SwitchButton Text="" Checked="{value: IsActive}">
                </bp:SwitchButton>
            </ContentTemplate>
        </dot:GridViewTemplateColumn>
    </Columns>
</bs:GridView>

<bs:DataPager DataSet="{value: Skus}" />

**ViewModel**
    [Bind(Direction.ServerToClient)]
    public GridViewDataSet<CloudProductEntity> Skus { get; set; } 

    public override Task Init()
    {
        if (!Context.IsPostBack)
        {
            Skus = new GridViewDataSet<CloudProductEntity>
            {
                PagingOptions = { PageSize = 10 },
                SortingOptions =
                {
                    SortDescending = true,
                    SortExpression = nameof(CloudProductEntity.ContourSku)
                },
            };
            Skus.LoadFromQueryable(CloudProductEntity.Search(Search).AsQueryable());
        }
        return base.Init();
    }
4

1 回答 1

0

有两个问题会阻止分页正常工作:

  1. 不幸的是,GridViewDataSet它不支持单向绑定方向,因为分页和排序参数存储在其中,需要提交给服务器。

  2. Init不是从数据库加载数据的好地方 - 推荐的方法是在回发命令之后PreRender发生。此外,检查是否比检查更好,因为可能存在不需要重新加载数据的回发。DataSet.IsRefreshRequiredContext.IsPostBack

于 2020-05-13T18:29:26.387 回答