有 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;
从第二个页面请求开始(即在内部用户控件 Test2.ascx 被缓存之后) ucTreeView将作为null出现。
要求: Test2.ascx 用户控件需要被缓存,并且该用户控件的控件值将在Test1.ascx 用户控件中访问(缓存和非缓存状态)。怎么做?
提前非常感谢。