簡體   English   中英

將.aspx加載到Panel / UpdatePanel中

[英]Loading .aspx into a Panel/UpdatePanel

我目前正在使用ASP.NET和C#開發基於Web的游戲。 以前,我只是將各種游戲屏幕(開始,高分,結果等)組織到嵌套在主UpdatePanel中的各個面板中,並隨着游戲的進行顯示/隱藏適當的面板。 但是,我嚴重低估了游戲的規模,我不得不將其細分為更易於管理的部分。

我現在的想法是擁有一個帶有空UpdatePanel的Main.aspx,然后將各個屏幕作為單獨的.aspx文件加載到其中。 我認為,Kinda喜歡使用WinForms,當您創建另一個新的WinForm並將其添加到當前的父窗體中時。

我一直在嘗試找到如何在后台代碼中進行此操作的方法,但我仍然迷失了方向。 我可能可以使用Response.Redirect做到這一點,但是在新頁面加載時會出現通常的閃爍,這是我要避免的事情。

我確實遇到了一個有趣的東西,稱為UFrame,但它似乎可以在HTML中而不是在背后的代碼中工作。

感謝您在此問題上的任何幫助或建議,對於以前曾被要求的問題,我們深表歉意。 謝謝。

編輯:關於womp的答案,.ascx對我來說似乎是朝正確方向邁出的一步。 我成功地在Main.aspx中啟動並運行了Startscreen控件。 但是,彈出了另一個問題,當我嘗試在單擊按鈕時向Main.aspx內的面板添加另一個用戶控件時,屏幕只是一片空白。

我在“開始”屏幕控件中具有按鈕的事件處理程序是:

protected void Btn_Arcade_Click(object sender, EventArgs e)
    {
        this.Parent.Controls.Add(LoadControl("Arcade.ascx"));

    }

我不太確定這是否有問題,但是在這種情況下,Parent基本上就是我所說的位於Main.aspx的UpdatePanel中的GameContentPanel。

我也不認為HTML出現問題,因為我通過先加載而不是加載Startscreen對其進行了測試,並且一切正常。

我還嘗試過在Main.aspx開始時將兩個控件一起加載,並且兩個控件也正確加載。

“屏幕”可以是.ascx用戶控件嗎? 您可以使用LoadControl("~/path/to/myControl.ascx")將用戶控件加載到面板中,然后這些控件可以參與主頁的生命周期。

如果它們確實必須位於單獨的.aspx頁中,則您可能需要考慮使用iframe,否則可能需要重新考慮您的方法。 Webforms應用程序旨在在一頁/表單的上下文中發生很多事情,而不是將控件來回傳遞到多個頁面。

暫無
暫無

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

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