首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从asp:ObjectDataSource-SelectMethod访问其他asp:控件

从asp:ObjectDataSource-SelectMethod访问其他asp:控件
EN

Stack Overflow用户
提问于 2013-08-23 08:03:22
回答 1查看 173关注 0票数 0

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

我的问题是,listview和我的2个整数值都需要访问同一个数据库表,我真的不想进行两次调用(两个字段在Page_Load中,ObjectDataSource在SelectMethod中)。

问题是,对于这两种方法(Page_Load和SelectMethod),我看不到一种简单的方法来交换任何数据(例如,使用本地属性)。

代码语言:javascript
复制
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

我希望有人能告诉我一个好的解决方案(更好的没有外部缓存)如何在这两种方法之间交换数据。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-08-27 06:43:51

可悲的解决方案是:asp:ObjectDataSource...不使用

现在我正在使用asp:LinqDataSource,它提供了一个‘选择’事件,我可以在那里修改我的前端的控件。

代码语言:javascript
复制
' 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
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18397803

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档