2013-06-03 36 views
0

基於用戶從下拉列表中選擇來顯示/隱藏文本框或整個div部分的最佳方式是什麼?我不相信它可能與服務器控件,所以我將不得不使用常規的客戶端HTML控件,正確的?感謝您的任何意見。 jQuery會是最好的選擇嗎?有沒有辦法在默認情況下隱藏Div,然後在用戶從下拉列表中選擇選項時顯示它?ASP.NET服務器控件 - 根據下拉選擇顯示隱藏文本框

<div id="divLimitPrice">Limit Price<br /> 
     <asp:TextBox ID="txtLimitPrice" runat="server" ValidationGroup="ValidationGroupOrder"></asp:TextBox> 
     &nbsp;<asp:RequiredFieldValidator ID="rfvLimitPrice" runat="server" ControlToValidate="txtLimitPrice" ErrorMessage="This is a required field."></asp:RequiredFieldValidator> 
     </div> 

<script type="text/javascript"> 
    $(function() { 
     $('[id*="ddPriceType"]').on('change', function() { 
      var val = this.value, 
       $divLimitPrice = $('[id*="divLimitPrice"]'); 

      if (val === 1 || val === 2) { 
       // Hide div group 
       $divLimitPrice.hide(); 
      } else { 
       // Show div group 
       $divLimitPrice.show(); 
      } 
     }); 
    }); 
</script> 

Price Type<br /> 
     <asp:DropDownList ID="ddPriceType" runat="server" ValidationGroup="ValidationGroupOrder"> 
      <asp:ListItem Value="" Text ="Select a Price Type" /> 
      <asp:ListItem Value="2" text="Type 2" /> 
      <asp:ListItem Value="3" text="Type 3" /> 
      <asp:ListItem Value="4" text="Type 4" /> 
     </asp:DropDownList> 
     &nbsp;<asp:RequiredFieldValidator ID="rfvPriceType" runat="server" ControlToValidate="ddPriceType" ErrorMessage="This is a required field."></asp:RequiredFieldValidator> 
     <div id="divLimitPrice">Limit Price<br /> 
     <asp:TextBox ID="txtLimitPrice" runat="server" ValidationGroup="ValidationGroupOrder"></asp:TextBox> 
     &nbsp;<asp:RequiredFieldValidator ID="rfvLimitPrice" runat="server" ControlToValidate="txtLimitPrice" ErrorMessage="This is a required field."></asp:RequiredFieldValidator> 
     </div>` 

嗯..我嘗試調整代碼,我錯過了一些東西!有什麼想法嗎?感謝您的時間。

+0

使用服務器控件,你可以完成相同的行爲。 –

+0

正如答案所示,最好的方法是在客戶端使用jQuery。 「服務器控件」可以通過切換.Visible屬性來模仿此行爲。例如,您可以在的SelectedIndexChanged事件上切換服務器端的的.Visible屬性。然後,您可以將所有內容都包裝在UpdatePanel中以使其無縫(AJAX)。 – JAKEtheJAB

回答

0

您可以使用.jquery

$(function() { 
    $('[id*="dropdown"]').on('change', function() { 
     var val = this.value, 
      $txtbox = $('[id*="txtLimitPrice"]'); 

     if (val === 1 || val === 2) { 
      // Hide text box 
      $txtbox.hide(); 
     } else { 
      // Show text box 
      $txtbox.show(); 
     } 
    }); 
}); 
+0

謝謝!我會給它一個 – gmatteson

+0

謝謝你們,非常有幫助,非常感謝。 – gmatteson

2

沒有什麼是不可能的。你可以做任何你在問題中提出的問題。也不需要切換到普通的HTML控件。如果你想隱藏文本框或div,這並不重要。我將向您展示一個帶有aspx控件的簡單示例。按照相同的,你會得到你想要的結果。

檢查此鏈接

JSFiddle Here

這裏div標籤裏,你可以使用任何ASPX控制

<div> 
<asp:textbox id="TxtSample" runat="server" /> 
</div> 

Or Instead of DIV you can use Panels too 

<asp:Panel ID="PnlLogin" runat="server"> 
-- -- Your Controls Here 
</asp:panel> 
相關問題