C# 删除asp.net中禁用控件后的空白
我有一个小页面,它看起来如下:C# 删除asp.net中禁用控件后的空白,c#,asp.net,C#,Asp.net,我有一个小页面,它看起来如下: <asp:Panel ID="panel" runat="server"> <asp:Button ID="button" runat="server"/> <br /> </asp:Panel> 某个标题 <asp:Panel ID="panel" runat="server"> <asp:Button ID="button" runat="server"/>
<asp:Panel ID="panel" runat="server">
<asp:Button ID="button" runat="server"/>
<br />
</asp:Panel>
某个标题
<asp:Panel ID="panel" runat="server">
<asp:Button ID="button" runat="server"/>
<br />
</asp:Panel>
仅针对登录用户使用文本标签
<asp:Panel ID="panel" runat="server">
<asp:Button ID="button" runat="server"/>
<br />
</asp:Panel>
超链接
<asp:Panel ID="panel" runat="server">
<asp:Button ID="button" runat="server"/>
<br />
</asp:Panel>
注销按钮
<asp:Panel ID="panel" runat="server">
<asp:Button ID="button" runat="server"/>
<br />
</asp:Panel>
下面是隐藏的代码:
protected void Page_Load(object sender, EventArgs e)
{
if (User.Identity.Name == "")
{
Label1.Visible = false;
Controls.Remove(Label1);
}
else
{
Label1.Visible = true;
}
}
<asp:Panel ID="panel" runat="server">
<asp:Button ID="button" runat="server"/>
<br />
</asp:Panel>
问题是:当非登录用户加载页面时,标签不会显示。但是如何移动超链接和注销按钮,从而隐藏标签不可见的地方的空白
<asp:Panel ID="panel" runat="server">
<asp:Button ID="button" runat="server"/>
<br />
</asp:Panel>
谢谢您必须使用css显示:此处无您必须创建一个身份验证面板这是一个asp:Panel扩展,它将使您能够控制“登录和未登录的用户而不会感到头痛”
<asp:Panel ID="panel" runat="server">
<asp:Button ID="button" runat="server"/>
<br />
</asp:Panel>
例如:
public class AuthenticatedPanel : Panel
{
public string Action { get; set; }
public AuthenticatedPanel()
{
this.Load += new EventHandler(AuthenticatedPanel_Load);
}
void AuthenticatedPanel_Load(object sender, EventArgs e)
{
//your logic to check wether is user is legit or not
// and then
this.Visible = false;
}
}
<asp:Panel ID="panel" runat="server">
<asp:Button ID="button" runat="server"/>
<br />
</asp:Panel>
//然后使用
<asp:AuthenticatedPanel ID="pnl" runat="server">
your content here
</asp:AuthenticatedPanel>
<asp:Panel ID="panel" runat="server">
<asp:Button ID="button" runat="server"/>
<br />
</asp:Panel>
你的内容在这里
总之,根据以上信息和一些研究,以下是对我有效的方法。使用codebehind中的button.Visible=false删除空白,但“br”标记仍然存在,因此将它们包装在各个面板中并隐藏面板,而不是按钮,即panel.Visible=false,它将删除所有空白。以下是一个示例,在.aspx页面上,创建一个包含控件的面板(注意“br”)标签(在其内部):
<asp:Panel ID="panel" runat="server">
<asp:Button ID="button" runat="server"/>
<br />
</asp:Panel>
标签1.样式。添加(“显示”、“无”);好的……这行不通。我没有注意到您实际上正在从控件中删除标签。它的效果与Label1.visible=false相同;标签是隐藏的,但它的位置是空白。我删除了行控件。删除(标签1);看起来是这样