asp ページ (.aspx) ページがあり、その中に asp:Panel があります。私は Telerik ライブラリを使用していますが、これは無関係だと思います。
ファイル サイズと作業構成のために、asp:Panel タグをメイン ファイルの外にある別のスタンドアロンの .aspx に移動する必要があります。
aspx コンテンツを新しいファイルに移動し、関連するコードを .cs ファイルに移動して、主要なものから分離しました。
メインの load_page で、コンストラクターを介して別のパネルをインスタンス化します。コンストラクターは、パネル内のすべてのコントロール、特に .Show() メソッドを持つ をインスタンス化します。
すべてのメンバーは新しいクラスで動作しますが、私は ASP に非常に慣れていないため、以前のファイルに個別の aspx コードを配置する方法がわかりません。 myModalPopup.Show() を呼び出すと、ページのリロードの効果しかないためです。
別のファイルにパネルを抽出:
<asp:Panel ID="panelId" runat="server">
<asp:HiddenField ID="control1" runat="server" />
<ajax:ModalPopupExtender ID="extId" runat="server" TargetControlID="control1">
</ajax:ModalPopupExtender>
//Html/Controls stuff
</asp:Panel>
myPanel.cs
protected EditPanel myPanel = new EditPanel();
public class EditPanel: System.Web.UI.Page
{
protected Panel myPanel;
protected HiddenField control1;
public AjaxControlToolkit.ModalPopupExtender extender;
//Other controls
public EditPanel()
{
extender = new AjaxControlToolkit.ModalPopupExtender();
control1 = new HiddenField();
//Other inits
}
}
メインページ .cs:
protected void Page_Load(object sender, EventArgs e)
{
protected EditPanel editor = new EditPanel();
//... so on
}
メインpage.aspxで試しました(成功せずに)
<asp:Panel ID="panelId" runat="server">
<!-- #Include virtual="~/path/EditPanel.aspx" -->
</asp:Panel>