想知道在单击超级链接时是否有方法将下拉列表设置为在代码后面或asp中可见?超级链接将下拉列表设置为可见
<asp:HyperLink ID="HyperLink2" runat="server">View More Workout Programs »</asp:HyperLink>
想知道在单击超级链接时是否有方法将下拉列表设置为在代码后面或asp中可见?超级链接将下拉列表设置为可见
<asp:HyperLink ID="HyperLink2" runat="server">View More Workout Programs »</asp:HyperLink>
如果你有这样做的代码隐藏,然后使用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>
使用一个asp:LinkButton
代替超链接和处理OnClick
事件。在OnClick
事件中,根据是否要显示或不显示,切换myDropDownList.Visible
。
您应该在客户端实现这种功能(JavaScript代码)以改善用户体验。
无论如何,当单击链接时,您可以使用可见性= false的Panel,并在代码后面放置Visibility = true。您需要用css调整该面板的位置,使其看起来像下拉菜单。
你可以使用jQuery尝试:在服务器上的LinkButton而不是和处理OnClick事件:http://www.jquery.com
它将会像
<script type="text/javascript">
$(document).ready(function(){
$("#<% =HyperLink2.ClientID %>").click(function() {
$("#<% =DropDownList1.ClientID %>").toggle();
});
});
</script>
如果您需要发送的形式返回到服务器上,使用ASP侧。如果您需要在客户端显示下拉列表,请使用javascript函数与onclick客户端事件显示或隐藏您想要的任何部分。