【问题标题】:Button is not getting visible once its visibility set to false while navigating from one page to another从一个页面导航到另一个页面时,一旦其可见性设置为 false,按钮就不会变得可见
【发布时间】:2013-07-28 07:45:11
【问题描述】:

场景:我有两个 ASPX 页面 page1.aspx 和 page2.aspx。在 page1.aspx 中有一个名为“VIEW”的按钮,在 page2.aspx 中有一组名为“button 1”、“button 2”的四个按钮","button 3" 和 "button 4" 分别定义在table标签下,还有一个搜索文本框和搜索按钮点击page2.aspx。

我的问题陈述是:当您单击 page1.aspx 的“查看”按钮时,您应该导航到 page2.aspx,并且 page2 上的四个按钮集应该在 page2.aspx 上变得不可见/禁用,当我在搜索文本框中输入了一些搜索词(例如 Microsoft),然后单击 page2.aspx 上的搜索按钮,然后所有四个按钮集都应该与搜索结果一起显示/启用。

我面临的问题是,我能够成功地从 page1.aspx 导航到 page2.aspx,并且 page2 上的四个按钮在 page2.aspx 上也变得不可见。但是,当我输入一些搜索条件时在 page2.aspx 的搜索文本框中并通过单击搜索按钮进行搜索,我可以获得搜索结果,但我的四个按钮集在 page2.aspx 上不可见/启用。我正在使用 button.visible = “true”在 page2.aspx.cs 的代码隐藏文件中的 search_click() 函数中。

【问题讨论】:

  • 搜索结果是否会覆盖您的按钮。这是 CSS / 布局问题吗?
  • 不,我的搜索结果没有覆盖我的按钮。我不认为这是一个 css/布局问题,是的,我正在使用 updatepanel 以及 ajax。所以你说我必须使用 updatepanel还是不?
  • 您当然可以使用更新面板,但这可能是您的问题的根源。我将在下面编辑我的答案并告诉你该怎么做。
  • 嘿,翼,感谢您的帮助。我会尝试让您知道它是否有效。
  • 您好,成功了。感谢您的帮助。

标签: c# asp.net


【解决方案1】:

将您的按钮封装在一个 asp 面板中。在aspx页面中设置面板的visible属性为false,使其默认为false。

使面板在“搜索”按钮单击事件中可见。

例如,在该事件中,您只需要代码:

Panel1.Visible= true

如果您使用的是更新面板,那么您可能应该将按钮面板放在单独的更新面板中,并将更新模式设置为有条件的。然后,您应该能够在更新面板上设置触发器,以便仅在单击搜索按钮时刷新内容。

<asp:UpdatePanel ID="upButtons" runat="server" UpdateMode="Conditional" ChildrenAsTriggers="false">
  <Triggers>
    <asp:AsyncPostBackTrigger ControlID="btnSearch" />
  </Triggers>
  <ContentTemplate>
    <<your buttons here>>
  </ContentTemplate>
</asp:UpdatePanel>

我认为您的答案将遵循这些思路。您还可以在搜索按钮单击事件中直接从代码中触发更新。

upButtons.Update 

【讨论】:

  • 嗨翼,感谢您的响应。我尝试将按钮放在 asp 面板和 div 标签中,并将其可见性设置为 false,并且在搜索按钮单击事件中我使用了 panel1.visible = true 和 div1.visible = true。但是,它没有帮助我。我认为一些按钮控件没有刷新,这就是为什么它的可见性没有设置为“true”。有什么建议吗??
  • 您是否在任何地方使用更新面板或任何类型的 ajax?在正常情况下,您的搜索按钮单击会回传到服务器并重新加载页面。如果您在更新面板中执行此操作,那么这可能是您的问题
猜你喜欢
  • 2021-08-19
  • 1970-01-01
  • 1970-01-01
  • 2014-07-01
  • 1970-01-01
  • 2010-10-08
  • 1970-01-01
  • 2021-10-26
  • 1970-01-01
相关资源
最近更新 更多