访问其他asp:来自asp的控件:ObjectDataSource-SelectMethod

时间:2013-08-23 08:03:22

标签: asp.net vb.net listview objectdatasource

我有一个简单的webcontrol.ascx,带有listview和2个Integer字段(显示某些元素的nbr。)。 Listview从asp:ObjectDataSource填充。

我的问题是listview和我的2个整数值都需要访问同一个数据库表,我真的不想进行两次调用(在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

我希望有人可以告诉我一个很好的解决方案(最好没有外部缓存......)如何在两种方法之间交换数据..

1 个答案:

答案 0 :(得分:1)

令人遗憾的解决方案是:使用 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 Sub