我正在制作一个表格,该表格将显示打开不同类型报告的链接。这个系统有不同类型的用户,所以用户应该只能看到他们可以访问的报告类型的链接。
目前,我进行此设置的方式是我有一个 LinkLabels 的 ArrayList,但我遇到的问题是如何为 ArrayList 中的每个 LinkLabel 设置一个 LinkClicked 事件,以便它会显示一个特定于每个报告的表单.
我正在制作一个表格,该表格将显示打开不同类型报告的链接。这个系统有不同类型的用户,所以用户应该只能看到他们可以访问的报告类型的链接。
目前,我进行此设置的方式是我有一个 LinkLabels 的 ArrayList,但我遇到的问题是如何为 ArrayList 中的每个 LinkLabel 设置一个 LinkClicked 事件,以便它会显示一个特定于每个报告的表单.
实际上,我会为所有链接标签创建一个事件处理程序,(在 ArrayList 的数据绑定过程中添加处理程序)以及要在 LinkLabel 的 CommandName 标签中加载的报告的名称。当事件处理程序触发时,您将检查 CommandName 属性并触发适当的功能以加载给定的报告。
您可以将相同的事件处理程序应用于列表中的每个 LinkLabel,并从 sender 参数中获取特定的 LinkLabel。
绝对建议为所有动态 LinkLabel 实例使用单个事件处理程序。
我通常使用 Hashtable,其中键是 LinkLabel 实例,值是将在单击事件中使用的内容(例如报告实例,如果合适的话)。
然后在您使用的点击事件中(例如)
Report r = m_TheTable[sender] as Report;
if( r != null ) r.DoSomething();