我们要做的是将整个控件保存到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
请原谅简写代码。
答案 0 :(得分:0)
是的,缓存可能会包含任何对象,包括webcontrol。然而,也许最好比Page_Load -Page_init更早地做到这一点。
此外,我很好奇你这样做的原因......这似乎是一个糟糕的解决方案。此外,当您在viewstate页面循环方法运行时再次将控件添加到页面时,它可能会更改您拥有的控件实例...
您能描述一下您尝试使用缓存的Web控件解决的问题吗?