2 つのユーザー コントロール ( Test1.ascxとTest2.ascx ) があります。Test1.ascx には Test2.ascx が含まれています。
内部ユーザー コントロール ( Test2.ascx ) html は次のとおりです。
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="Test2.ascx.cs"
Inherits="Test.UserControls.Test2" %>
<%@ OutputCache Duration="200" VaryByParam="None" %>
<%@ Register Assembly="Telerik.Web.UI" Namespace="Telerik.Web.UI" TagPrefix="telerik" %>
<telerik:RadTreeView runat="server" ID="radTreeView" >
<DataBindings>
<telerik:RadTreeNodeBinding Depth="0" CssClass="rootNode" />
</DataBindings>
</telerik:RadTreeView>
外側のユーザー コントロール ( Test1.ascx ) html は次のようになります。
<div runat="server" id="divTreeViewContainer">
<uc:ucTreeView runat="server" ID="ucTreeView" />
</div>
ページが初めて要求されたとき、両方のユーザー コントロールが完全に読み込まれています。Test2.ascx のツリー ビューは、Test1.ascx の FindControl() によって次のようにアクセスされます。
//Find the tree view from the Test2.ascx user control
var radTreeView = ucTreeView.FindControl("radTreeView") as RadTreeView;
2 番目のページ リクエスト以降 (つまり、内部ユーザー コントロール Test2.ascx がキャッシュされた後) ucTreeViewはnullになります。
要件: Test2.ascx ユーザー コントロールをキャッシュする必要があり、このユーザー コントロールのコントロール値は、Test1.ascx ユーザー コントロールで (キャッシュされた状態とキャッシュされていない状態の両方で) アクセスされます。どうやってするの?
よろしくお願いします。