2

有 2 个用户控件(Test1.ascxTest2.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 用户控件中访问(缓存和非缓存状态)。怎么做?

提前非常感谢。

4

0 回答 0