0

我有一個gridview,我想顯示或隱藏一個文本框基於選定的同一行上的下拉列表的值。基於GridView中的下拉列表值設置文本框的可見性

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

如何聯結起來,使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 

編輯: 我也想能夠使用必填字段驗證的文本框,如果它不隱藏。

回答

0

它看起來像你需要SelectedIndexChanged事件的控件綁定:

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

感謝。我知道我錯過了一些東西,但並不認爲這很簡單。 – zeroef 2010-08-27 19:59:10

相關問題