缓存对象和页面加载提交

时间:2011-11-30 03:43:25

标签: asp.net vb.net

我们要做的是将整个控件保存到Cache中,并重新启动页面加载的属性,包括数据项。但是我们希望控件在页面中已经存在。

这可能吗?

<html>
        <asp:Repeater runat="server" id="rptListOfSubscribers">
            <ItemTemplate>
                <%# Eval("Name")%><br />
            </ItemTemplate>
        </asp:Repeater>
</html>

VB:

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)

        If Cache("MyRepeater") Is Nothing Then
            Dim rpt As Repeater = InitaliseRepeater()
        Cache.Insert("MyRepeater"), rpt, Nothing, DateTime.Now.AddMinutes(720), Tim

eSpan.Zero)
        End If

        rptListOfSubscribers = Cache("MyRepeater")

End Sub

    Function InitaliseRepeater() As Repeater

        Dim rpt As New Repeater
        rpt.DataSource = x
        rpt.DataBind()

    Return rpt
End Function

请原谅简写代码。

1 个答案:

答案 0 :(得分:0)

是的,缓存可能会包含任何对象,包括webcontrol。然而,也许最好比Page_Load -Page_init更早地做到这一点。

此外,我很好奇你这样做的原因......这似乎是一个糟糕的解决方案。此外,当您在viewstate页面循环方法运行时再次将控件添加到页面时,它可能会更改您拥有的控件实例...

您能描述一下您尝试使用缓存的Web控件解决的问题吗?