aspx页面内面板内的自定义控件。 ASP.NET

时间:2013-04-26 02:50:39

标签: asp.net user-controls

长时间听众,第一次来电!

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

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

母版页 - 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”);
}

1 个答案:

答案 0 :(得分:0)

原来我只是做错了。我放弃了ascx控件,现在我正在使用带有其他aspx内容页面的母版页。

我的做法只不过是我在WPF中养成的坏习惯。