2013-05-28 3 views
1

여러 aspx 페이지에서 사용할 수있는 재사용 가능한 컨트롤 (ascx)을 작성하려고합니다. SelectMethod 컨트롤이있는 데이터 소스가 있습니다. SelectMethod의 이름으로 호출 페이지 이름 (확장자 빼기)을 사용하고 싶습니다. 다른 곳에서 조회 할 수 있습니다.데이터 원본에 대한 SelectMethod로 .net 사용자 정의 컨트롤을 제공하는 상위 페이지의 이름에 변형을 사용하려고 시도했습니다.

ascx 페이지에서이 정보에 액세스하는 방법을 잘 모르겠습니다. 이 의사 코드 같은 것이 작동합니다 기대했다 :

페이지 이름()가로 조회 할 수있는 문자열로 부모 aspx 페이지 이름을 반환하는 .ascx.cs 파일에서 함수가

<asp:ObjectDataSource ID="ObjectDataSource1" runat="server" OldValuesParameterFormatString="original_{0}" SelectMethod="Parent.pagename()" TypeName="BlahBlah"></asp:ObjectDataSource>

SelectMethod는 BLL에있는 ObjectContextFacadeManager의 다른 곳에서 사용됩니다 (그 중 대다수의 거대한 응용 프로그램 - 절반 만 알고 있습니다).

건배.

답변

1

AppRelativeCurrentExecutionFilePath을 사용하면 원하는 값을 얻을 수 있습니다.

SelectMethod="<%Request.AppRelativeCurrentExecutionFilePath%>" 

runat="server" (IIRC)와 컨트롤의 속성 값으로 작동하지 않습니다 : 같은 사용 인라인 스크립트가 있기 때문에 출력에 당신은,하지만, 코드 숨김 사용 할 수 있습니다 그것.

그래서, 부하, 또는 다른 이벤트에, 당신은 프로그래밍 방식으로 설정할 수 있습니다 :

Page_Load(object sender, EventArgs e) { 
    SelectMethod = System.IO.Path.GetFileNameWithoutExtension(
    Request.AppRelativeCurrentExecutionFilePath); 
} 
+0

그게 큰 그랜트. 완벽하게 작동합니다. onpageload/oninit 함수에서'ObjectDataSource1.SelectMethod = System.IO.Path.GetFileNameWithoutExtension (Request.AppRelativeCurrentExecutionFilePath);를 확인하기 만하면됩니다. 건배 – power2havenots

+0

나는 조금 더 복잡합니다. 이 UC에는 예를 들어 다중보기가 있습니다. 내 UC는 DB에 특정 플래그가있는 모든 사람들을 보여줍니다. 내 MV에서 나는 그 깃발이없는 모든 것을 다른 탭에 보여줄 필요가있다. 위의 경우와 같이 페이지 이름을 읽으려면 매개 변수를 일반 UC로 전달할 수 있지만 "not-"라는 단어는 사용할 수 있습니까? 예 :''/>< – power2havenots

+0

그런 다음 UC 뒤에있는 코드에서 :'public String NegatedFlag {get; } – power2havenots