用于将下拉列表设置为可见的超链接

时间:2011-04-03 19:59:38

标签: c# asp.net html

想知道点击超链接是否有办法将下拉列表设置为后面的代码或asp中可见?

<asp:HyperLink ID="HyperLink2" runat="server">View More Workout Programs »</asp:HyperLink>

5 个答案:

答案 0 :(得分: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 :(得分:1)

使用asp:LinkButton代替超链接并处理OnClick事件。在OnClick事件中,切换myDropDownList.Visible取决于您是否要显示它。

答案 2 :(得分:0)

您应该在客户端(javascript代码)中实现这种功能,以改善用户体验。

无论如何,您可以使用Visibility = false的Panel,并在单击链接时将Visibility = true置于代码后面。您需要使用css调整该面板的位置,使其看起来像下拉列表。

答案 3 :(得分:0)

您可以尝试使用JQuery:http://www.jquery.com

这将是

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

答案 4 :(得分:0)

如果需要将表单发送回服务器,请改用asp:LinkBut​​ton并在服务器端处理OnClick事件。如果您需要在客户端显示下拉列表,请使用带有onclick客户端事件的javascript函数来显示或隐藏您想要的任何部分。