Sharepoint Web部件、动态创建的控件和事件处理程序

Sharepoint Web部件、动态创建的控件和事件处理程序,sharepoint,event-handling,web-parts,Sharepoint,Event Handling,Web Parts,在web部件中,显示动态表的最佳方式是什么,其中每个单元格都可以导致回发显示不同的数据集 例如,想象一些财务数据: Table 1: Quarters in year | Q1 | Q2 | Q3 | Q4 | Things 1 | 23 | 34 | 44 | 32 | Things 2 | 24 | 76 | 67 | 98 | 单击Q2的值Things 1 34,将显示第二个表,而不是表1: Table 2: W

在web部件中,显示动态表的最佳方式是什么,其中每个单元格都可以导致回发显示不同的数据集

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

Table 1: Quarters in year | Q1 | Q2 | Q3 | Q4 | Things 1 | 23 | 34 | 44 | 32 | Things 2 | 24 | 76 | 67 | 98 | 单击Q2的值Things 1 34,将显示第二个表,而不是表1:

Table 2: Weeks in Quarter | W1 | W2 | W3 | W4 | W5 | W6 | W7 | SubThings 1 | 231 | 22 | 44 | 22 | 344 | 86 | 12 | SubThings 2 | 14 | 75 | 47 | 108 | 344 | 86 | 12 | 我目前采用的方法的问题是,我可以在CreateChildControls中创建表1,这会导致单元格中所有链接按钮的所有事件都连接良好

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

因此,无论我在哪里创建表2作为result,因为它是在CreateChildControls之后创建的,我都无法让它正确地连接事件

有什么想法吗

问候 呜呜

编辑:解决了


您需要做的是在PreRender上签入任何eventhandler调用,设置任何需要的标志,然后手动调用this.CreateChildControls,以便创建新表并正确连接所有内容。

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


J

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

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

在调用事件之前,需要先绑定这些事件,因此您需要在CreateChildControls中创建相同的控件,允许调用事件,然后重置所有内容


为此,首先执行与上一页相同的CreateChildControls,然后在OnPreRender中检查是否进行了任何eventhandler调用,设置您需要的任何标志,然后使用新的设置信息手动调用此。CreateChildControls,以便创建新表并正确连接所有内容。

问题在于它解决了两个表的问题,而不是三个表或n个表的问题。事实上,对于n个表,我自己已经解决了这个问题。从这个问题上看,这并不清楚,您需要不断深入。我的解决方案是创建我自己的模板控件……这可以解决两个表的问题,但不能解决两个以上的问题,我最终可以这样做。@Moo最好将您的解决方案作为问题的答案,并在几天后回来将其标记为已回答。否则,问题列表中的问题将永远无法回答。