【问题标题】:asp.net render partial -render ascx page tnto aspx page [closed]asp.net 渲染部分 - 渲染 ascx 页面 tnto aspx 页面 [关闭]
【发布时间】:2009-11-26 07:07:14
【问题描述】:

嘿..我是 asp.net 的新手,我想知道 如何将部分页面 (.ascx) 呈现为 .aspx 页面 在链接上点击

【问题讨论】:

    标签: asp.net render


    【解决方案1】:

    在您的 ASPX 页面中包含用户控制文件,但将其设置为不可见:

    <%@ Page Language="C#" %>
    <%@ Register TagName="test" TagPrefix="asp" Src="~/Test.ascx" %>
    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
        <title></title>
    </head>
    <body>
        <form id="form1" runat="server">
            <asp:test runat="server" ID="test" Visible="false" />
        </form>
    </body>
    </html>
    

    然后在您的页面上放置一个链接,当单击此链接时,在单击处理程序中将控件的可见性设置为 true:

    test.Visible = true;
    

    这是整个例子:

    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="ToDD._Default" %>
    <%@ Register TagName="test" TagPrefix="asp" Src="~/Test.ascx" %>
    
    <script type="text/C#" runat="server">
        protected void ShowClick(object sender, EventArgs e)
        {
            test.Visible = true;
        }
    </script>
    
    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
        <title></title>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
            <asp:test runat="server" ID="test" Visible="false" />
            <br/>
            <asp:LinkButton ID="BtnShow" runat="server" Text="Show" OnClick="ShowClick" />
        </div>
        </form>
    </body>
    </html>
    

    更新:

    根据要求,这里是使用 javascript 的相同示例:

    <%@ Page Language="C#" %>
    <%@ Register TagName="test" TagPrefix="asp" Src="~/Test.ascx" %>
    
    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head id="Head1" runat="server">
        <title></title>
        <script type="text/javascript">
        function show() {
            document.getElementById('container').style.display='block';
        }
        </script>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
            <div id="container" style="display:none;">
                <asp:test runat="server" ID="test" />
            </div>
            <br/>
            <a href="#" onclick="show();">Show</a>
        </div>
        </form>
    </body>
    </html>
    

    【讨论】:

    • 谢谢您的回答...但我只想使用 JavaScript 能否请您提供与 javascript 相同的内容
    • 运行后出现此错误 System.Web.HttpException: Validation of viewstate MAC failed。如果此应用程序由 Web Farm 或集群托管,请确保 配置指定相同的验证密钥和验证算法。 AutoGenerate 不能在集群中使用 - 错误出现突出显示以下行(我正在使用 MVC)
    • 嘿...感谢重播,但有一个问题...上面的代码..正在自动呈现 ascx 页面...我希望它是 onclick 即手动你能帮忙...我在 中剪切 runat=server 但之后“显示”lnk 停止工作请帮助