2013-08-23 4 views
0

나는 listview와 2 개의 정수 필드 (특정 요소의 표시)가있는 간단한 webcontrol.ascx가 있습니다. Listview는 asp : ObjectDataSource에서 채워집니다.다른 asp에 액세스 : asp : ObjectDataSource-SelectModod의 컨트롤

내 문제는 listview와 my2 정수 값 모두 동일한 데이터베이스 테이블에 대한 액세스가 필요하며 실제로 두 번 호출하려고하지 않는다는 것입니다 (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

슬픈 솔루션입니다 : 를 사용을 해달라고 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