我想在点击链接按钮时显示/隐藏面板。当我在简单页面上使用它时它工作正常但是当我在用作母版页的页面上尝试它时它不起作用。
我的代码:
<%@ Page Language="C#" MasterPageFile="~/Master_Institute.master" AutoEventWireup="true" CodeFile="frm_Student_Renewal_Reg.aspx.cs" Inherits="frm_Student_Renewal_Reg" Title="Untitled Page" %>
<asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
<script type='text/javascript' src='http://jqueryjs.googlecode.com/files/jquery-1.3.2.min.js'></script>
<style type="text/css">
.panel{
display:none;
}
.style1{
width: 620%;
}
</style>
<script type="text/javascript">
$(function() {
$("#Link1").click(function(evt) {
evt.preventDefault();
$('#panelText').slideToggle('slow');
});
});
</script>
<table>
<tr>
<td>
<asp:HyperLink ID="Link1" runat="server" NavigateUrl="#">
Using slideToggle
</asp:HyperLink>
<br />
<asp:Panel ID="panelText" runat="server" CssClass="panel">
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc turpis nunc, placerat ac, bibendum non, pellentesque nec, odio.
</asp:Panel>
</td>
</tr>
<tr>
<td>
</td>
</tr>
</table>
</asp:Content>
我做错了什么?
最佳答案
所有控件的id都是根据ID和所在的其他页面自动创建的。当您只有一个页面时,Link1
很可能再次呈现为 Link1
但是当您将其添加到母版页中时,asp.net 会添加以避免冲突前面还有一些名字,例如占位符的名字。
现在实际上,您需要在客户端有 javascript 代码,即最终呈现的 ID,这可以使用 Link1.ClientID
获取。
所以在每一行你必须得到你使用它的ID
$("#<%=Link1.ClientID%>").click(function(evt) {
然后您对在 javascript 上使用的所有 asp.net 控件执行此操作。
你也可以设置 ClientIDMode="Static"
但是你不能在同一个页面上使用同一个控件两次,你还必须注意其他控件不要有相同的 ID .
ClientIDMode =Static 属性告诉 asp.net 保留您设置的 id,而不是动态创建一个新的 id。此属性在 asp.net 版本 4 上引入。
关于c# - 单击链接按钮时显示面板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21327569/