asp.net 中的不可见控件占用 asp.net 中的 space

invisible controls in asp.net takes up space in asp.net

我有一个 ASP.NET 网络应用程序。我有一个 TextBox (txtProductName) 和一个 DropDownList(ddlChanges) 在页面加载时可见。还有一个 TextBox(txtDeliveryStatus) 和一个 Label (lblDeliveryStatus) 在页面加载时不可见。

<asp:TextBox ID="txtProductName" runat="server" CssClass="selectstyle" MaxLength="8" Width="60" />

<asp:Label ID="lblDeliveryStatus" runat="server" Style="visibility: hidden;">Delivery Status : </asp:Label>
<asp:TextBox ID="txtDeliveryStatus" runat="server" CssClass="selectstyle" Style="visibility: hidden;"/>

<asp:DropDownList runat="server" ID="ddlChanges" CssClass="selectstyle" onchange="javascript:ddlChangesChanged();"> 
    <asp:ListItem Text="-- Select -- " Value="-1"></asp:ListItem> 
    <asp:ListItem Text="Status Change" Value="1"></asp:ListItem>
    <asp:ListItem Text="Product Name Change" Value="2"></asp:ListItem>       
    <asp:ListItem Text="Category Change" Value="3"></asp:ListItem>
</asp:DropDownList>

当用户从 DropDownList 中选择状态更改时,我将使 LabelTextBox 的交付状态可见。但问题是 LabelTextBox 传递状态是不可见的,它们仍然在可见控件之间的页面上占用了一些 space。

如何删除 space 不可见控件?

您应该使用 display 属性:

<asp:Label ID="lblDeliveryStatus" runat="server" Style="display: none;">Delivery Status : </asp:Label>

<asp:TextBox ID="txtDeliveryStatus" runat="server" CssClass="selectstyle" Style="display: none;"/>

为了完整性,您可以查看此 link

您可以使用控件的可见属性。 隐藏:

Control.Visibile=false;

随时显示

Control.Visible=true;

在您 control.Visible = false 之后仍然显示白色 space 的原因是因为 "br" 换行标记仍然存在。用你的按钮标签包裹它们并隐藏它们以真正去除白色 space.