【问题标题】:Web parts, dynamically created controls and eventhandlersWeb 部件、动态创建的控件和事件处理程序
【发布时间】:2009-09-10 18:50:40
【问题描述】:

在 Web 部件中显示动态表格的最佳方式是什么?其中每个单元格都会导致回发显示一组不同的数据?

例如,想象一些财务数据:

表 1:一年中的季度 |第一季度 | Q2 |第三季度 |第四季度 | 事情 1 | 23 | 34 | 44 | 32 | 事情2 | 24 | 76 | 67 | 98 |

点击 Q2 的值,Things 1 (34),这将导致显示第二个表而不是表 1:

表 2:季度周数 | W1 | W2 | W3 | W4 | W5 | W6 | W7 | 子事物 1 | 231 | 22 | 44 | 22 |第344章86 | 12 | 子事物 2 | 14 | 75 | 47 | 108 |第344章86 | 12 |

我目前采用的方法的问题是我可以在 CreateChildControls 中创建表 1,这会导致单元格中的所有链接按钮的所有事件都很好地连接起来。

但是,因为在回发时,我需要再次在 CreateChildControls 中创建表 1,以便正确连接事件处理程序,并且当事件触发 CreateChildControls,我只知道我 CreateChildControls 后需要更改表。

因此,无论我在何处创建表 2 作为结果(因为它在 CreateChildControls 之后),我都无法让它正确连接事件。

有什么想法吗?

问候 哞哞

编辑:解决了。

您需要做的是在 OnPreRender 中检查任何事件处理程序调用,设置您需要的任何标志,然后手动调用 this.CreateChildControls,以便创建新表并正确连接所有内容。

【问题讨论】:

  • @Moo 最好将您的解决方案保留为问题的答案,并在几天后回来将其标记为已回答。否则,问题列表中似乎永远没有答案。

标签: sharepoint event-handling web-parts


【解决方案1】:

看起来您在这里谈论的是主/详细情况。您是否不能创建两个 Web 部件并使用 Web 部件连接将所需信息从第一个 Web 部件中的表 1 传递到第二个 Web 部件中的表 2?

J

【讨论】:

  • 这解决了两个表,但不超过两个,我最终可以这样做。
【解决方案2】:

只需将 2 个表添加到您的 Web 部件,隐藏第二个直到第一个单击元素,然后在 OnClick 事件处理程序中设置第二个表的数据源,将第二个网格设置为可见,将第一个网格设置为隐藏...

【讨论】:

  • 问题在于它解决了两个表的问题,而不是三个表或n个表的问题。事实上,我已经为 n 个表自己解决了这个问题。
  • 问题并不清楚,您需要不断深入研究。我的解决方案是创建自己的模板化控件...
【解决方案3】:

根据 Alex 的建议,答案如下:

事件需要在被调用之前绑定,所以你需要在 CreateChildControls 中创建相同的控件,允许事件被调用,然后再重新设置所有内容。

为此,首先执行与上一页相同的 CreateChildControls,然后检查 OnPreRender(如果已进行任何事件处理程序调用),设置您需要的任何标志,然后使用新的设置信息手动调用 this.CreateChildControls,以便新表已创建,一切都已正确连接。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-03
    • 1970-01-01
    • 2011-01-01
    相关资源
    最近更新 更多