【问题标题】:show panel when click on link button单击链接按钮时显示面板
【发布时间】:2014-02-15 03:30:10
【问题描述】:

我想在单击链接按钮时显示/隐藏面板。当我在简单页面上使用它时它工作正常,但是当我在用作母版页的页面上尝试它时它不起作用。

我的代码:

<%@ 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>

我做错了什么?

【问题讨论】:

  • 将 ClientIDMode="Static" - 属性添加到您的面板
  • 现在为什么这个问题的标志是下降的?

标签: c# javascript asp.net css ajax


【解决方案1】:

控件的所有 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 而不是动态创建新的。此属性在 asp.net 版本 4 上引入。

【讨论】:

    猜你喜欢
    • 2016-05-19
    • 2012-05-06
    • 2017-01-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-16
    • 1970-01-01
    相关资源
    最近更新 更多