【问题标题】:Custom Controls within Panels within aspx pages. ASP.NETaspx 页面内面板中的自定义控件。 ASP.NET
【发布时间】:2013-04-26 02:50:39
【问题描述】:

长期聆听,第一次来电!

我有一个带有面板的 ASXP 页面。当我单击主 ASPX 页面上的按钮时,会运行一些将自定义 ascx 控件加载到面板中的代码。当母版页最初加载时,会加载一个“主页”控件。单击母版页上的按钮时,主控件被清除并加载另一个控件。问题是当我突然单击自定义控件中的链接标签时,自定义控件被卸载并重新加载主控件。

它看起来像这样(如果这很难阅读,我很抱歉。)

母版页 - home.aspx - ASP

<html>
<body>
    <table>
        <tr>
            <td><asp:LinkButton ID=”link1” runat=”server” OnClick=”Load_Control2” /></td>
            <td><asp:Panel ID=”Panel1” runat=”server” /></td>
        </tr>
    </table>
</body>
</html>

母版页 - home.aspx – C#

protected void Page_Load(object sender, EventArgs e)
{
    UserControl control =(PageControls.Control1)LoadControl("PathtoControl");
    ApplicationDock.Controls.Add(control);    
}
protected void Load_Control2(object sender, EventArgs e)
{
    ApplicationDock.Controls.Clear();
    UserControl control =(PageControls.Control2)LoadControl("PathtoControl");
    ApplicationDock.Controls.Add(control);    
}

自定义控件1 - ASCX - ASP

<div>
<table>
    <tr>
        <td><h2> Welcome Home </h2></td>
    </tr>
</table>
</div>

自定义控件2 - ASCX - ASP

<div>
    <asp:LinkButton ID=”CustomLink1” runat=”Server” Onclick=”RunClodeBlock1” />
</div>

自定义控件 2 - ASCX - C#

Protected void RunClodeBlock1 (object sender, EventArgs e)
{
    Response.redirect(“google.com”);
}

【问题讨论】:

  • 当您单击 ASCX 文件上的 CustomLink1 时,应用程序会在 home.aspx 上执行 Page_Load 方法?
  • 你是对的。我该如何阻止这种情况?

标签: asp.net user-controls


【解决方案1】:

原来我做错了。我已经放弃了 ascx 控件,现在我正在使用带有附加 aspx 内容页面的母版页。

我的方法只不过是我在 WPF 中的一个坏习惯的延续。

【讨论】:

    猜你喜欢
    • 2011-01-14
    • 2021-09-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-05
    相关资源
    最近更新 更多