-1

我正在修改一个非常复杂的表格。此表单有多个子表单。最初的化身是创建所有这些隐藏的面板等等(不是我的设计,我正在尝试修复)。

我最终得到的是一个 FormView,其中编辑模式由一个典型的表单组成,并且有一个子表单。现在,子窗体在 ReadOnly 模式下显示一个 GridView,它与回调编辑方法相关联,该方法会将子窗体的索引更改为正确的索引并将其更改为编辑模式。这些的所有数据都通过SqlDataObjects。

为了简化过程,我将子窗体放入用户控件中,并将用户控件包含在主窗体的 Edit 和 ReadOnly 部分中。因此,当主窗体为 ReadOnly 时,它会在默认模式下显示用户控件,即 ReadOnly 从而显示网格。这部分工作得很好。

当用户在编辑模式下打开主窗体时,子窗体会按预期以网格模式显示(并且网格中包含编辑按钮的列呈现可见)。这也很好。

当我单击编辑按钮并将表单更改为编辑模式时,一切都按预期工作。我可以看到通过主窗体到子窗体的流程(通过调试)正在按预期进行。

现在,当我单击更新按钮时,它只是一个设置了 CommandName 的简单 LinkBut​​ton(就像其他有效的表单视图一样)我注意到回调转到子表单(跳过主表单的数据绑定——这也是期望),但更新调用永远不会呈现给 SqlDataObject。

我的每个 SqlDataObjects 都有一个 OnUpdating/OnInserting/OnSelecting 仅用于调试目的,它从未被命中。回发后,用户控件直接进入只读模式。我认为这不是 DataBinding 问题。

有人用嵌套表单控件看到过这个吗?具体来说,包含嵌套在 FormView 中的 FormView 的用户控件?

我不会放弃整个 UserControl 并将子窗体直接放在主窗体中,但我宁愿知道正确的解决方案,直到它工作为止......

4

1 回答 1

0

似乎处理来自嵌套表单视图的回调需要将其视为动态控件,即使它是模板的一部分。当子表单被强制进入编辑模式(通过将其设置为默认值)时,它会按预期处理回发。当它保留默认设置时,它无法按预期处理回发。

我想提供一些示例代码,我可能会在以后这样做(这就是为什么我假设我在发布后的一分钟内得到 -1)但似乎没有任何关于嵌套的功能示例表格(无论如何都可以使用的样本)。

简短的解决方法是将第二个表单放在第一个表单的范围之外(但仍在同一个用户控件内),然后执行几个回调以进行更改检测。

话虽如此,如果您在表单中有表单,并且他们的 b

于 2013-02-04T17:47:30.883 回答