【问题标题】:How do I hide and show some buttons?如何隐藏和显示一些按钮?
【发布时间】:2012-08-01 00:09:12
【问题描述】:

在标记页面上,我们隐藏了这些按钮:

   <asp:TextBox ID="searchBox" runat="server"></asp:TextBox><asp:Button ID="btnSearch" runat="server" Text="Search Site" /> 
    <br /><br /> 
   <asp:Button runat="server" ID="checkall" Text="Check All" OnClick="checkall_Click" /> 
   <asp:Button runat="server" ID="uncheckall" Text="Uncheck All" OnClick="uncheckall_Click" />

我们希望在页面加载时隐藏选中和取消选中按钮。

如果单击了搜索按钮,则使 checkall 和 uncheckall 按钮可见。

到目前为止,我的努力效果不佳。

首先在 page_load(...) 事件中,我有这些:

'make them hidden by default
checkall.Visible = False
unckeckall.Visible = False

然后在 btnSearch_click (...) 事件中,我想确保单击了搜索按钮,然后使 checkall 和 uncheckall 按钮可见。

    If (btnSearch.ID = "btnSearch") Then
        checkall.Visible = True
        unckeckall.Visible = True
    End If

到目前为止,它运行得并不好。

在页面加载时,checkall 和 uncheckall 按钮被隐藏,就像我们想要的那样。

当用户点击搜索站点时,它们是可见的。那也不错。

问题是当我点击 checkall 来选中复选框时,checkall/uncheckall 按钮又消失了。

我们只希望它们在未点击搜索按钮时不可见。

有什么想法吗?

【问题讨论】:

  • 您在 if 语句中使用了赋值运算符 (=) 而不是相等比较运算符 (==)。
  • 看起来您使用的是 VB.NET 而不是 C#。也许编辑你的标签?
  • @gilly3:他使用的是 VB.Net,而不是 C#。 VB.Net 仅使用单个 = 进行相等比较。
  • @rossisdead - 明白了。我被标签甩了。

标签: asp.net vb.net


【解决方案1】:

将您的初始化代码移动到 !IsPostBack 检查中:

if (!IsPostBack)
{
    checkall.Visible = False;
    unckeckall.Visible = False;
}

更好的是,将其从 C# 中删除,使其具有声明性:

<asp:Checkbox ID="checkall" Visible="False" ... />



编辑: 或者,在 VB 中:

If Not IsPostBack Then
    checkall.Visible = False
    unckeckall.Visible = False
End If

对吗?我的 VB 可能有点生疏了。

【讨论】:

    【解决方案2】:

    试试这个

    'VB
    If Not Page.IsPostBack Then
    
        'make them hidden by default
        checkall.Visible = False
        unckeckall.Visible = False
    
    End If
    
    //C#
    If (!Page.IsPostBack) 
    {
    
        'make them hidden by default
        checkall.Visible = false;
        unckeckall.Visible = false;
    
    }
    

    【讨论】:

      【解决方案3】:

      为 btnSearch 添加 OnClick 事件,如下所示

      <asp:TextBox ID="searchBox" runat="server"></asp:TextBox>
      <asp:Button ID="btnSearch" runat="server" Text="Search Site" OnClick="btnSearch_click" /> 
      <br /><br /> 
      <asp:Button runat="server" ID="checkall" Text="Check All" OnClick="checkall_Click" /> 
      <asp:Button runat="server" ID="uncheckall" Text="Uncheck All" OnClick="uncheckall_Click" />
      

      【讨论】:

      • 感谢大师的及时回复。 @gilly3 等,如果我使用codingbiz 的解决方案,checkall 和uncheckall 将被隐藏,即使在单击“搜索站点”按钮后仍保持隐藏状态。与codingbiz 的代码相同,只是如果我将它与上面显示的 if...conditional 结合使用它就可以工作。我只是想知道我是否走在正确的轨道上。同样,我们希望它的工作方式是选中/取消选中按钮在页面加载时不可见,但在单击搜索后变为可见并保持可见直到加载新页面。
      • 检查一下,你做错了什么。调试您的代码并在 btnSearch_Click 中放置一个断点。
      • @codingbiz,我可能做错了什么,但结合了这一行: 和我的 if ...conditional似乎正在工作。像往常一样,在这个伟大的论坛上各位专家,我感谢大家。
      【解决方案4】:

      只是让它不可见。

       <asp:Button runat="server" ID="checkall" Text="Check All" OnClick="checkall_Click" style="display:none"/> 
       <asp:Button runat="server" ID="uncheckall" Text="Uncheck All" OnClick="uncheckall_Click" style="display:none"/>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-03-02
        • 2021-06-05
        • 1970-01-01
        • 2020-05-21
        • 2019-08-23
        相关资源
        最近更新 更多