【发布时间】:2011-06-26 07:54:27
【问题描述】:
我正在使用实体框架 4.0 将数据库对象绑定到 ascx 控件上的 DetailsView。在 DetailsView 中,我有许多 asp:panels,我想根据该人访问中发生的情况来显示/隐藏它们。
所以,第一次通过页面时,我在 FormView_OnLoad 事件中设置了 panelA.Visible=false,一切都很好 - 该面板不会在 HTML 中输出。它听我在这里问什么。
单击提交和回发后,我将再次检查发生的情况并在 FormView_OnLoad 和 EntityData_OnUpdating 中设置 panelA.Visibe=false。但是这一次,当页面出现时 panelA 正在显示。
我发现我只能通过在 DetailsView_PreRender 中设置 visible=false 或将可见性绑定到公共变量来在回发后隐藏该面板。
我在想,也许在 life cycle 中,DetailsView 将再次绑定到最后,并丢弃我的可见性设置,即使它们没有绑定。因此,要在回发时在 DetailsView 中显示/隐藏面板,我是否总是必须在 DetailsView_PreRender 或之后设置可见性?
我是在正确的轨道上,还是在最后一秒重置了我?
为什么我可以在第一次通过页面时设置可见性但不能回发?
【问题讨论】:
标签: asp.net entity-framework-4 visibility detailsview