Установить видимость текстового поля на основе значения раскрывающегося списка в виде сетки - PullRequest
0 голосов
/ 27 августа 2010

У меня есть вид сетки, который я хотел бы показать или скрыть текстовое поле на основе выбранного значения раскрывающегося списка в той же строке.

Мой вид сетки:

                <asp:GridView ID="GridViewUsers" runat="server" AutoGenerateColumns="False" CssClass="TableFramed">
                <Columns>
                    <asp:TemplateField HeaderText="Type">
                        <ItemTemplate>
                            <asp:DropDownList ID="ddlType" runat="server" AutoPostBack="true">
                                <asp:ListItem Value="1">Overtime</asp:ListItem>
                                <asp:ListItem Value="2">Temporary</asp:ListItem>
                                <asp:ListItem Value="3">Permanent</asp:ListItem>
                            </asp:DropDownList>
                        </ItemTemplate>                        
                    </asp:TemplateField>
                    <asp:TemplateField HeaderText="First Name">
                        <ItemTemplate>
                            <asp:TextBox ID="txtFName" runat="server"></asp:TextBox>
                            <asp:RequiredFieldValidator ID="FNameValidator" runat="server" Text="*" ControlToValidate="txtFName" Display="Dynamic"></asp:RequiredFieldValidator>
                        </ItemTemplate>
                    <asp:TemplateField HeaderText="hide me">
                        <ItemTemplate>
                            <asp:TextBox ID="txtHideMe" runat="server"></asp:TextBox>
                        </ItemTemplate>
                </Columns>
             </asp:gridview>

Какподключить его так, чтобы текстовое поле txtHideMe можно было скрыть или отобразить на основе выбранного значения раскрывающегося списка?

Codebehide:

   Protected Sub ddlType_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs)
        For Each row In GridViewUsers.Rows
            Dim reqType As DropDownList = CType(row.FindControl("ddlType"), DropDownList)
            Dim txtHideMeAs TextBox = CType(row.FindControl("txtHideMe"), TextBox)

            If reqType.SelectedItem.Value = "2" Then
                txtHideMe.Visible = "False"
            End If
        Next
    End Sub

Редактировать: Я также хотел бычтобы иметь возможность использовать обязательное поле проверки в текстовом поле, если оно не скрыто.

1 Ответ

0 голосов
/ 27 августа 2010

Похоже, вам нужно привязать событие SelectedIndexChanged к элементу управления:

<asp:DropDownList runat="server" ID="ddlType" OnSelectedIndexChanged="ddlType_SelectedIndexChanged" ...>
...