根据下拉列表中的选择删除网络表单的某些部分

时间:2015-05-20 18:38:26

标签: asp.net webforms

我希望能够根据用户从下拉列表中选择的请求类型来包含和排除表单的某些部分,该列表也包含在表单中。这是我目前的代码。我可以让文本框消失,但我也不能让标签消失。

<div>
    <table>
        <tr>
            <td>
                <font color="red">*</font>MAC Request Type:
            </td>
            <td>
                <asp:DropDownList ID="ddlMACRequestType" runat="server" AutoPostBack="true" OnSelectedIndexChanged="ddlMACRequestType_Change">
                    <asp:ListItem Text="Select One" Value=""></asp:ListItem>
                    <asp:ListItem Text="Add Device" Value="Add Device"></asp:ListItem>
                    <asp:ListItem Text="Change Device" Value="Change Device"></asp:ListItem>
                    <asp:ListItem Text="Delete Device" Value="Delete Device"></asp:ListItem>
                    <asp:ListItem Text="Alert Change" Value="Alert Change"></asp:ListItem>
                    <asp:ListItem Text="Other" Value="Other"></asp:ListItem>
                </asp:DropDownList>
                &nbsp;&nbsp;&nbsp;&nbsp;
                <asp:CheckBox ID="chkbxLiveSearch" runat="server" Visible="false" Checked="true" AutoPostBack="true" OnCheckedChanged="chkbxLiveSearch_Change" Text="&nbsp;Use Live Search"  /> 
            </td>
        </tr>
        <tr>
            <td>
                <font color="red">*</font>Device:
            </td>
            <td>
                <asp:TextBox ID="txtDevice" runat="server" MaxLength="255" width="375" ClientIDMode="Static"></asp:TextBox>
            </td>
        </tr>
        <tr>
            <td>
                <font color="red">*</font>Interface:
            </td>
            <td>
                <asp:TextBox ID="txtInterface" runat="server" MaxLength="255" width="375" ClientIDMode="Static"></asp:TextBox>
            </td>
        </tr>

有人建议我使用asp:标签,但我如何添加红色星号呢?它们对项目很重要。这是有人建议的,但没有按预期工作。

<asp:Panel Visible="false">
                <td>
                    <font color="red">*</font>Device:
                </td>
                <td>
                    <asp:TextBox ID="txtDevice" runat="server" MaxLength="255" width="375" ClientIDMode="Static"></asp:TextBox>
                </td>
                </asp:Panel>

1 个答案:

答案 0 :(得分:2)

要隐藏标签,请为其创建<asp:Label>。这将为您提供与<asp:TextBox>类似的服务器端功能。

为了让事情变得更容易,我会经常倾向于使用<asp:Panel>。这基本上是服务器端<div>,使您能够同时隐藏所有内容,而不是单独隐藏所有内容。

这也不会在整个地方留下一堆空表行和单元格。

<asp:Panel ID="pnlDevice" runat="server">
    <tr>
        <td>
            <font color="red">*</font>Device:
        </td>
        <td>
            <asp:TextBox ID="txtDevice" runat="server" MaxLength="255" width="375" ClientIDMode="Static"></asp:TextBox>
        </td>
    </tr>
</asp:Panel>

然后像其他控件一样隐藏面板。

pnlDevice.Visible = false;