2011-04-03 74 views

回答

2

如果你有這樣做的代碼隱藏,然後使用LinkButton代替HyperLink。然後它將有一個點擊事件,就像任何按鈕一樣,在該點擊事件中,您可以將其他元素設置爲.Visible=true

但是,這是否需要在代碼隱藏?請記住,在服務器端和客戶端的代碼之間的「知名度」的區別:

  • 如果設置爲.Visible=false在服務器端,內容不交付給客戶的。
  • 如果在客戶端設置爲display:none,則該內容存在,並且可以在頁面源中查看,但瀏覽器不顯示該內容。

在某些情況下,前者是出於安全目的而需要的。但是,如果這只是用戶體驗的問題,那麼我會建議在客戶端完全顯示/隱藏內容,以避免僅僅改變元素顯示屬性的後備功能。

例如(假設的jQuery):

<a id="toggler" href="#">Show the content</a> 
<div id="hidden" style="display:none;">Content</div> 
<script> 
    $(document).ready(function(){ 
    $("#toggler").click(function(){ 
     $("#hidden").show(); 
    }); 
    }); 
</script> 
1

使用一個asp:LinkButton代替超鏈接和處理OnClick事件。在OnClick事件中,根據是否要顯示或不顯示,切換myDropDownList.Visible

0

您應該在客戶端實現這種功能(JavaScript代碼)以改善用戶體驗。

無論如何,當單擊鏈接時,您可以使用可見性= false的Panel,並在代碼後面放置Visibility = true。您需要用css調整該面板的位置,使其看起來像下拉菜單。

0

你可以使用jQuery嘗試:在服務器上的LinkBut​​ton而不是和處理OnClick事件:http://www.jquery.com

它將會像

<script type="text/javascript"> 
    $(document).ready(function(){ 
     $("#<% =HyperLink2.ClientID %>").click(function() { 
      $("#<% =DropDownList1.ClientID %>").toggle(); 
     }); 
    }); 
</script> 
0

如果您需要發送的形式返回到服務器上,使用ASP側。如果您需要在客戶端顯示下拉列表,請使用javascript函數與onclick客戶端事件顯示或隱藏您想要的任何部分。