2013-08-23 84 views
0

我有一個簡單的webcontrol.ascx與列表視圖和2個整數字段(顯示某些元素的編號)。 Listview從asp:ObjectDataSource中獲取。訪問其他asp:從asp:ObjectDataSource-SelectMethod控件

我的問題是,這兩個列表視圖和我的2整數值需要訪問相同的數據庫表,我真的不想讓這個調用兩次(內頁Page_Load爲2個字段和SelectMethod內的ObjectDataSource)

問題是,我沒有看到兩種方法(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 

我希望有人能告訴我一個很好的解決方案(最好沒有外部緩存..)如何將兩種方法之間進行數據交換..

回答

1

可悲的解決方案是:使用ASP:ObjectDataSource控件 ...

現在即時通訊使用ASP :使用LinqDataSource至極提供從那裏我可以修改我的前端的控制「selecting'事件。

' 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 Sub