0

J'ai une vue en grille que j'aimerais afficher ou masquer une zone de texte en fonction de la valeur sélectionnée d'une liste déroulante sur la même ligne.Définir la visibilité de la zone de texte en fonction de la valeur de la liste déroulante dans la vue en grille

Mon gridview:

   <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> 

Comment puis-je câbler de sorte que la zone de texte txtHideMe peut être caché ou affiché basé sur de la valeur sélectionnée de la dropdownlist?

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 

Edit: Je voudrais aussi pouvoir utiliser un champ validateur requis sur la zone de texte si elle est pas caché.

Répondre

0

Il semble que vous devez lier l'événement SelectedIndexChanged au contrôle:

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

Merci. Je savais qu'il me manquait quelque chose mais je ne pensais pas que c'était si simple. – zeroef

Questions connexes