一旦标签的可见性设置为 false,如何使标签再次可见?
How do you make labels visible again once their visibility is set to false?
在 asp.net 网络表单中,我有一个带有代码隐藏文件的用户控件(如下所示)。
UserControl 中有两个 <asp:Label>
节点,我试图将其用作表单中的步骤。
问题是,当我到达 "Step2" 并单击 Cancel
时,"Step1" 不会重新显示,尽管我正在设置它的 Visible
属性 为真。
我做错了什么?或者有更好的方法吗?
用户控件
<%@ 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" />
<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;
}
}
您没有对那些 labels
做任何事情,在标签控件中定义按钮是错误的想法。看起来您正在尝试使用标签作为容器控件。而是使用 <div>
element/tag 作为容器并尝试。它应该有效。
<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" />
<asp:Button runat="server" CssClass="btn" ID="cmdCancel" Text="Cancel" />
</div>
</div>
在 asp.net 网络表单中,我有一个带有代码隐藏文件的用户控件(如下所示)。
UserControl 中有两个 <asp:Label>
节点,我试图将其用作表单中的步骤。
问题是,当我到达 "Step2" 并单击 Cancel
时,"Step1" 不会重新显示,尽管我正在设置它的 Visible
属性 为真。
我做错了什么?或者有更好的方法吗?
用户控件
<%@ 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" />
<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;
}
}
您没有对那些 labels
做任何事情,在标签控件中定义按钮是错误的想法。看起来您正在尝试使用标签作为容器控件。而是使用 <div>
element/tag 作为容器并尝试。它应该有效。
<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" />
<asp:Button runat="server" CssClass="btn" ID="cmdCancel" Text="Cancel" />
</div>
</div>