【发布时间】:2012-07-22 19:20:59
【问题描述】:
我有一个具有 button1 的父页面 Page1。 Page1 有一个用户控件 uc1。 uc1 有一个更新面板,其中存在一个网格 grid1。我正在尝试将 Page1.button1 的可见性设置为 false,具体取决于 uc1.grid1 的行命令事件(行命令事件中有一些 if 条件)。我通过以下方式设置 Page1.button1 的可见性:
在 uc1 中创建一个 IsButton1Visible 属性。将 UC1.Grid1.RowCommand 中的属性设置为 false,在 page1 PreRender 事件上,访问 IsButton1Visible 并设置 Page1.button1 可见性。
即使在快速观看 Page1.button1 的可见性在分配行设置为 false,当我看到 UI 时,它仍然可见。我不知道我做错了什么。或者我获取 button1 的方式及其可见性不正确。
一般来说,我们可以在用户控件事件期间从用户控件设置父页面的控件属性吗?
【问题讨论】:
-
你的问题有点混乱。您确定您的意思是
IsButton1Visible属性是用户控件的一部分吗? -
在您的用户控件中引发您的页面可以处理的自定义事件。然后您可以根据事件参数或 UserControl 属性在此处切换可见性。
-
更好的方法可能是在您的控件上设置一个事件以达到
UpdateParentButtonVisibility的效果,并创建一个事件参数来设置所需的可见性。然后,您的父页面可以订阅该事件并进行适当的处理。 -
@freefaller 是的。 IsButton1Visible 用户控件的属性。我的想法是在 uc1.Grid1 Row Command 事件期间在用户控件 uc1 中设置 IsButton1Visible(bool) 属性,然后在 Page1.prerender 事件中从 Page1 访问该属性并设置 Page1.button1.Visibile = uc1.IsButton1Visible .但是设置 Page1.button1 的可见性没有效果。我想我误解了更新面板的工作方式。即使我设置了属性, Page1 也根本没有刷新。我的解释清楚吗?
-
@SARAVAN 可以肯定地说您的按钮位于更新面板之外吗?
标签: asp.net .net updatepanel parent-child