asp.net中的隐形控件占用了asp.net中的空间

时间:2015-03-11 14:34:36

标签: c# css asp.net webforms

我有一个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>

当用户从Label选择状态更改时,我会显示TextBoxDropDownList的投放状态。但问题是传递状态的LabelTextBox是不可见的,并且它们仍会在可见控件之间的页面上占用一些空间。

如何删除不可见控件的空间?

3 个答案:

答案 0 :(得分:1)

控制后仍然显示空格的原因.Visible = false是因为剩下“br”newLine标记。用你的按钮标签包裹它们并隐藏它们以真正移除空白区域。

答案 1 :(得分:0)

您应该使用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

答案 2 :(得分:0)

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

Control.Visibile=false;

每当你想要显示

Control.Visible=true;