簡體   English   中英

如何將aspx頁面加載到Webpart中

[英]how to load an aspx page into the webpart

我通常這樣做是為了從布局目錄加載Web用戶控件。

protected override void CreateChildControls()
{
     try
     {

        SPSecurity.RunWithElevatedPrivileges(delegate()
        {
           base.CreateChildControls();
           string strControlReference = "/_layouts/Controls/MyCustomControl.ascx";

           //instantiate the user control
           MyCustomControl ucControl = (MyCustomControl)Page.LoadControl(strControlReference);

           //add the control to webpart
           this.Controls.Add(ucControl);
        });
     }
     catch (Exception ex)
     {
        Common.WriteLogEvent(ex);
     }

}

現在,我想做的是,在布局文件夾下有一個Web表單“ _ / layouts / Page / MyPage.aspx”文件,我想加載該文件,而不是在Webpart頁面上加載典型的ascx文件。

這有沒有可能? 我想知道如何。 謝謝。

您可以在Webpart中添加<IFRAME>並將頁面加載到其中。

或以編程方式創建IFRAME並以添加用戶控件的相同方式添加它:

var pageUrl = .....; // URL to your page
var literal = new Literal();
literal.Text = string.Format("<iframe src='{0}'></iframe>", pageUrl);
this.Controls.Add(literal);

如果您控制“ _ / layouts / Page / MyPage.aspx”,您不會告訴我們。 如果是這樣,只需從它創建一個新的用戶控件,然后在舊頁面和Web部件中使用它。

有一些陷阱,例如用戶控件沒有頁面上的所有事件(您需要覆蓋適當的方法),頁面上的變量不能直接訪問(僅使用用戶控件的Page屬性),但是如果頁面上沒有不太復雜,該過程應該只是“編譯和更改”的重復。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM