【问题标题】:Setting Button visibility to false code behind将按钮可见性设置为后面的错误代码
【发布时间】:2016-05-04 02:37:12
【问题描述】:

我有一个大约 100 个按钮的列表。我在 aspx 页面中将可见性设置为 false,然后在需要时尝试从后面的代码中将可见性设置为 true。

我不能做 Button1.Visible = true; (其中 Button1 是按钮的 ID,因为大约有 100 个按钮)

还有其他方法可以从后面的代码中将可见性设置为 true 吗?我正在创建一个接受按钮 ID 的函数,然后我想将可见性设置为 true。

【问题讨论】:

  • 我认为这是重复的问题。请看stackoverflow.com/questions/9441084/…
  • 如果您已经包含了您现在正在使用的当前代码集,那么 SO 会更容易为您指出正确的方向。当然,您可以遍历表单控件集合并操作基于 Button 的控件属性。

标签: c# html css asp.net


【解决方案1】:

您可以像下面的代码一样使用“Display:none”而不是“Visible = false”。

Button1.Style.Add("Display","none"); // for hide
Button1.Style.Add("Display","block"); // for show 

这将从屏幕上隐藏您的按钮。

如果你想在设计页面而不是代码后面做另一种方式,你可以写你的条件,例如,

<% if("your condition") {<%>
 //enter your HTML part here
<%} else{%>
// HTML
<%}%>

使用它,您也可以从设计屏幕中隐藏您的按钮。

【讨论】:

    【解决方案2】:

    如果您的按钮位于带有runat="server" 的某个父控件中,那么您可以在父控件的Controls 属性中从那里获取控件集合。然后您可以检查控件是否为Button,然后您可以从后面的代码中设置Visible = "false"
    示例:如果您在 divid="div1" 中有按钮,那么您可以编写如下代码

    foreach (var c in div1.Controls)
        if (c is Button)
           (c as Button).Visible = false;
    

    【讨论】:

      【解决方案3】:

      我认为您可以从客户端处理它会更好。您只需将一些类名与您想要显示或隐藏的按钮一起放置。假设您的按钮类名是“myClassName”。 然后写一个样式如下图

      .myClassName
      {
          display:none;
      }
      

      然后从按钮中删除 visible=false 属性并放置类而不是它。然后编写如下所示的javascript方法。

      function ShowButtons()
      {
          $('.myClassName').show();
      }
      

      然后从后面的代码中调用下面的代码行。它将从后面的代码中调用 javascript 方法。

      Page.ClientScript.RegisterStartupScript(this.GetType(),"CallMyFunction","ShowButtons()",true);
      

      试试这个。

      【讨论】:

        猜你喜欢
        • 2023-03-11
        • 2011-09-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-12-09
        • 2020-08-29
        相关资源
        最近更新 更多