【问题标题】:DevExpress BlazorServer DataGrid LayoutChanged Event doesn't fire after refreshDevExpress BlazorServer DataGrid LayoutChanged 事件在刷新后不会触发
【发布时间】:2021-05-05 09:28:16
【问题描述】:

问题: 当用户刷新页面然后更改数据网格的布局时,没有LayoutChanged 事件。在刷新之前,事件触发就好了。

嫌疑人: 在我的 razor 组件中是一个围绕整个 html 的 if 条件,它检查基本组件是否已初始化,因为 LayoutRestoring 事件在网格初始化时触发,但我需要基本组件处理的一些数据。当我删除 if 条件时,LayoutChanged 事件即使在刷新后也能正常触发。

我为什么这样做: balzor 在 OnInitializedAsync 方法中执行第一个 await 之前以及在 OnInitializedAsync 方法完成之后渲染一个组件。当数据网格初始化时,LayoutRestoring 事件被触发,但是为了加载正确的布局,我需要一些基本组件处理的信息。我无法将基本组件中的功能移动到我的组件中,并且用户不应按下按钮来保存当前布局。

【问题讨论】:

  • 关于组件生命周期和渲染存在一些误解。只有一个固定电话给StateHasChanged。这发生在SetParametersAsync 完成时 - 组件刷新周期的同步部分结束。还有另外两个对StateHasChanged 的条件调用。一个处于初始化阶段,仅在OnInitializedAsync 产生但未完成时运行。第二个在参数集中,仅在OnParametersSetAsync 产生但不完整时运行。它在 Microsoft 图表中明确说明。
  • 我找到了解决方案。这是 DevExpress 代码中的一个错误。 supportcenter.devexpress.com/versionhistory
  • 好的,你需要关闭这个问题。

标签: c# asp.net-core devexpress blazor blazor-server-side


【解决方案1】:

这是 DevExpress 代码中的一个错误。 supportcenter.devexpress.com/versionhistory

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-18
    相关资源
    最近更新 更多