tor*_*aan 6 asp.net user-controls
在我的页面上,我有n-userControls(相同的控件)我需要在它们之间进行通信(更具体地说,我需要在值中传递一个).
我不想涉及托管页面.
这些控件充当"寻呼机",并通过托管页面订阅的事件与主机页面上的分页数据进行交互.
因此,当用户单击其中一个寻呼机并更改其状态时,另一个控件应该知道它并相应地更改自身.
我不能使用VieState,因为viewstate是每个控件,因此是controlstate.
我可以使用Session吗?(会话是共享的,我只需要存储一个值)
或者也许我可以使用更好的东西?(没有QueryString)
就个人而言,如果不通过控制页面或事件来执行此操作,则没有“简单”的方法来执行此操作。
根据你所说的,我想象的会是这样的。假设两个控件 A 和 B 是您的寻呼机控件。
包含页面订阅两个控件上的“PageSelectionChanged”事件,响应该事件,它更新您已有的数据,并且它通过设置“当前页面”值的所有分页器控件进行枚举。
您已经准备好了用于从控制 -> 页面进行通信的事件管道,请使用您已经构建的内容。
为什么不是会话?
有人在评论中问我这是否比会话更好,出于多种原因,答案是肯定的。
还有其他解决方案,该解决方案类似于上面发布的解决方案,它会递归地查看页面,但您必须小心,以确保不会陷入循环/无限递归的情况,此外,如果您页面上有很多控件,不断循环所有内容会增加大量开销。
| 归档时间: |
|
| 查看次数: |
2260 次 |
| 最近记录: |