【问题标题】:DotVVM - GridView bindingDotVVM - GridView 绑定
【发布时间】:2019-02-15 04:58:02
【问题描述】:

我在 DotVVM 中绑定 GridView 时遇到问题。我从 EF Core 加载数据并填充 GridViewDataSet 属性并将该属性绑定到 GridView。在 GridView 下方,我有用于向表中添加新行的表单。当我加载页面时,它确实绑定正确。它显示了它应该显示的所有行,但是当我使用表单添加新行时,它不会刷新 GridView 中的数据。调用回发,我在 chrome 的开发人员工具中看到它。它甚至可以正确发送 viewModelDiff,但不会刷新 UI。我错过了什么?

点html:

        <dot:GridView DataSource="{value: Stables}" class="table table-responsive-sm table-sm" ShowHeaderWhenNoData="true">
            <Columns>
                <dot:GridViewTextColumn ValueBinding="{value: Id}" HeaderText="ID" />
                <dot:GridViewTextColumn ValueBinding="{value: Name}" HeaderText="Name" />
            </Columns>
        </dot:GridView>

视图模型:

    public GridViewDataSet<Stable> Stables { get; set; } = new GridViewDataSet<Stable>() { PagingOptions = { PageSize = 4 } };

    public override Task PreRender()
    {
        LoadStables();
        return base.PreRender();
    }

    public void LoadStables()
    {
        if (Stables.IsRefreshRequired)
        {
            Stables.LoadFromQueryable(_ctx.Stables);
        }
    }

    public void AddStable()
    {
         _ctx.Stables.Add(new Stable()
        {
            Id = StableId,
            Name = StableName
        });
         _ctx.SaveChanges();
        Stables.RequestRefresh();
    }

我正在使用 DotVVM.AspNetCore 2.0.2

【问题讨论】:

  • 我试图重现这个问题,但它适用于我的情况。我可以想到它不起作用的几个原因: 1. 为 GridView 或其某些父级打开了服务器渲染。 GridView 在 HTML 中呈现其所有行,并且在处于服务器呈现模式时无法在回发中添加新行。 2. 有一些 JavaScript 错误导致页面无法更新 - 查看 Dev Tools Console 选项卡。 3. 数据集的页面大小为 4 - 也许新项目只是在另一个页面上。

标签: gridview binding dotvvm


【解决方案1】:

我试图将 CoreUI boostrap 模板与 DotVVM 一起使用。但是有一些 javascript 文件会阻止 DotVVM 更新 UI。在控制台中显示一些错误。

【讨论】:

    猜你喜欢
    • 2022-06-15
    • 2018-11-27
    • 2018-11-27
    • 1970-01-01
    • 1970-01-01
    • 2010-12-31
    • 2014-10-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多