Skip to content

请问表格组件的动态表格功能的设计初衷是什么?应该怎样用才最合适? #6041

Answered by ArgoZhang
zhyy2008z asked this question in Q&A
Discussion options

You must be logged in to vote

我理解这个的。我们的组件库我们自己都在大量使用,不是跟别的组件库是的,他们自己都不用。所以你这个我很理解。我们先梳理一下

假设是一个文本框,用户 UI 更改了文本框的值,这个时候不管你数据库保存成功与否,这个时候 UI 都已经变了啊。所以你这个思维逻辑需要改变

我是想用户的每次增删改查操作都及时同步到数据库中,如果失败了就不更新界面,成功了才去更新界面

这个思路就给自己制造了很多困难

正确的思路应该是,组件只负责 UI 保存数据成功或者失败跟组件无关,首先你要认可这一点,所以如果保存成功了。我们可以不更新 UI 保持即可;如果保存失败了,你就重置 Context 再给 Table 组件,组件就会把老数据恢复了啊,当然这只是一个思路而已,也可以单元格自己出现红框等,这些都是自己的业务设计跟逻辑,仅供参考

我担心你又会继续问如何重置 Context 我再给你一段代码片段

public void InitDynamicContext()
{
    CorrectionDynamicContext = ChromaService.InitDataTableContext(this, DataSource, CtrlName, () =>
    {
        InitDynamicContext();
        StateHasChanged();
    }, Localizer, UniLocalizer);
}

第四个参数是一个回调,就是底层数据库保存失败或者成功后,都回调这个这个回调又调用自己并且 StateHasChanged 我们的系统是多人协作的。所…

Replies: 2 comments 12 replies

Comment options

You must be logged in to vote
2 replies
@zhyy2008z
Comment options

@ArgoZhang
Comment options

Comment options

You must be logged in to vote
10 replies
@zhyy2008z
Comment options

@ArgoZhang
Comment options

@zhyy2008z
Comment options

@ArgoZhang
Comment options

Answer selected by zhyy2008z
@zhyy2008z
Comment options

@ArgoZhang
Comment options

@zhyy2008z
Comment options

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Category
Q&A
Labels
None yet
2 participants