我有一个带有listview和2个Integer字段的简单webcontrol.ascx (显示nbr )。某些元素)。Listview是从asp:ObjectDataSource中填充的。
我的问题是,listview和我的2个整数值都需要访问同一个数据库表,我真的不想进行两次调用(两个字段在Page_Load中,ObjectDataSource在SelectMethod中)。
问题是,对于这两种方法(Page_Load和SelectMethod),我看不到一种简单的方法来交换任何数据(例如,使用本地属性)。
private mydata As List(of ...)
protected Sub Page_Load(...) Handles Me.Load
mydata = DbManager.HeavyCall(...)
literalValueA.Text = (From i in mydata ..... ).Count
literalValueB.Text = (From i in mydata ..Where ... ).Count
End Sub
' SelectMethod for asp:ObjectDataSource
public Function GetData( ... ) As List(of ...)
mydata.DoSomething(...) ' mydata is Nothing here...
end Function我希望有人能告诉我一个好的解决方案(更好的没有外部缓存)如何在这两种方法之间交换数据。
发布于 2013-08-27 06:43:51
可悲的解决方案是:asp:ObjectDataSource...不使用
现在我正在使用asp:LinqDataSource,它提供了一个‘选择’事件,我可以在那里修改我的前端的控件。
' Selecting-Event from my LinqDataSource
private Sub myLinqDataSource_Selecting(sender .., e .. ) Handles myLinq..Selecting
dim mydata = DbManager.HeavyCall(..)
literalValueA.Text = (From i in mydata ..... ).Count ' works
literalValueB.Text = (From i in mydata ..Where ... ).Count ' works
e.Result = mydata
End Subhttps://stackoverflow.com/questions/18397803
复制相似问题