【问题标题】:How do you make labels visible again once their visibility is set to false?一旦标签的可见性设置为 false,如何让标签再次可见?
【发布时间】:2016-01-23 20:12:44
【问题描述】:

在 asp.net 网络表单中,我有一个带有代码隐藏文件的 UserControl(如下所示)。

UserControl 中有两个 <asp:Label> 节点,我试图将它们用作表单中的步骤。

问题是当我到达“Step2”并点击Cancel时,“Step1”没有重新显示,尽管我将其Visible属性设置为true。

我做错了什么?或者有更好的方法吗?

用户控制

<%@ Control Language="C#" AutoEventWireup="true" 
CodeFile="MyUserControl.ascx.cs" Inherits="_MyUserControl" %>

<asp:Label runat="server" ID="lblStep1" Visible="true">
    <fieldset>
        <p>Some initial text here</p>
        <asp:Button runat="server" CssClass="btn btn-primary" ID="cmdSubmit" Text="Submit" />
    </fieldset>
</asp:Label>
<asp:Label runat="server" ID="lblStep2" Visible="false">
    <p>Some text here</p>
    <div>
        <asp:Button runat="server" CssClass="btn btn-primary" ID="cmdRequest" Text="Send The Request" />&nbsp;
        <asp:Button runat="server" CssClass="btn" ID="cmdCancel" Text="Cancel" />
    </div>
</asp:Label>

代码隐藏

public partial class _MyUserControl : UserControl
{

    protected void Page_Init(object sender, EventArgs e)
    {
        cmdCancel.Click  += new EventHandler(cmdCancel_Click);
        cmdSubmit.Click  += new EventHandler(cmdSubmit_Click);
    }

    public void cmdSubmit_Click(object sender, EventArgs e)
    {
        lblStep1.Visible = false;
        lblStep2.Visible = true;
    }

    public void cmdCancel_Click(object sender, EventArgs e)
    {
        // return to the previous step
        lblStep1.Visible = true;
        lblStep2.Visible = false;
    }

}

【问题讨论】:

  • 为什么要把按钮放在标签里面?
  • 哈!我曾假设(没有查看文档)标签是通用容器!我应该知道的更好。
  • 是的 :) 看到拉胡尔的回答。这应该工作

标签: c# asp.net webforms user-controls


【解决方案1】:

你没有对那些labels 做任何事情,在标签控件中定义按钮是一个错误的想法。看起来您正在尝试将标签用作容器控件。而是使用&lt;div&gt; 元素/标签作为容器并尝试。它应该可以工作。

<div runat="server" ID="lblStep1" Visible="true">
    <fieldset>
        <p>Some initial text here</p>
        <asp:Button runat="server" CssClass="btn btn-primary" ID="cmdSubmit" Text="Submit" />
    </fieldset>
</div>
<div runat="server" ID="lblStep2" Visible="false">
    <p>Some text here</p>
    <div>
        <asp:Button runat="server" CssClass="btn btn-primary" ID="cmdRequest" Text="Send The Request" />&nbsp;
        <asp:Button runat="server" CssClass="btn" ID="cmdCancel" Text="Cancel" />
    </div>
</div>

【讨论】:

  • 效果很好!谢谢@Rahul!
猜你喜欢
  • 1970-01-01
  • 2011-09-01
  • 2016-08-16
  • 2020-07-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-21
  • 2015-01-31
相关资源
最近更新 更多