2009-06-28 5 views
3

난이도가 떨어졌습니다!프로그래밍 방식으로 EntityDataSource 및 DetailsView에 대한 매개 변수를 설정하는 방법?

EntityDataSource 컨트롤의 선택 매개 변수를 프로그래밍 방식으로 설정하는 가장 좋은 방법은 무엇입니까?

특히, Page.User.ProviderUserKey를 사용하여 DetailsView에 대한 사용자 지정 사용자 정보 테이블의 레코드를 가져 오려고합니다.

asp:ControlParameter을 사용하여 컨트롤에서 값을 가져 오는 코드를 보았지만 이는 내 상황에 대한 해킹처럼 보입니다. 매개 변수 값을 설정하기위한 추가 컨트롤이 필요하지 않습니다.

아이디어가 있으십니까? 미리 감사드립니다!

답변

1

, 당신은 프로그래밍 방식으로 기본 매개 변수를 추가 할 수 있습니다 이렇게하면 필요한 것을 줄 수 있습니다.

+0

이것은 Parameter 개체에 ProviderUserKey의 기본값만을 제공합니다. – Aperture

1

당신은 사용자 정의 매개 변수를 만들 수 있습니다

<my:CustomParameter Name="MyParam" /> 

사용자 정의 매개 변수를 구현하는 방법의 세부 사항은 Fredrik Normén's Blog에서 찾을 수 있습니다. 맞춤 매개 변수를 사용하는 것은 기본 제공 매개 변수 유형을 사용하는 것만 큼 간단하지만 ScottGu's Blog에서 간단한 예를 찾을 수 있습니다.

가장 간단한 구현은 다음과 같을 것이다 :

Parameter parameter = new Parameter("MyParam", TypeCode.String, 
    Page.User.ProviderUserKey); 
MyDataSource.SelectParameters.Add(parameter); 

뭔가 : 사용자 정의 매개 변수 유형을 만드는 것은 너무 많은 작업 같은 느낌이 경우 다음과 같이

public class CustomParameter : Parameter 
{ 
    protected override object Evaluate(HttpContext context, Control control) 
    { 
     // This is where you would grab and return 
     // the Page.User.ProviderUserKey value 
     return string.Empty; 
    } 
}