2008-10-08 2 views
4

파일 :ASP.NET- 인스턴스화을 App_Code 클래스에서 웹 사용자 정의 컨트롤

웹 사이트 \ 컨트롤 \ map.ascx

웹 사이트 \을 App_Code \ map.cs

난을 만들고 싶습니다 map.cs의 map.ascx의 강력하게 유형화 된 인스턴스

일반적으로 aspx에서 코드 숨김에서 인스턴스화 할 수 있도록 < % Register ... 태그를 추가합니다. 이게 app_code 클래스에서 가능합니까? .NET 3.5/Visual Studio 2008을 사용 중입니다.

고마워요!

Map map = (Map)LoadControl("~/Controls/map.ascx"); 

답변

4

일반적으로는,이 같은 (당신의 유형은 "지도"당신이 당신의 .ascx 파일에 해당하는 "상속"선언을해야한다는 것입니다 가정을) 할 것입니다. Website \ Controls에 ascx.cs 파일이 있습니까? 그렇다면 App_Code로 이동하십시오. 참고로 .ascx 파일의 CodeFile 특성을 ~ \ App_Code \ map.ascx.cs로 업데이트해야 할 수 있습니다. 컨트롤이 부분 클래스이기 때문에 또는, 당신은 그냥 ~ \을 App_Code \ map.cs의 코드를 만들 수 있습니다

public partial class controls_Map : UserControl 
{ 
    protected void Page_Load(object sender, EventArgs e) 
    { 
     ...code here.... 
    } 
} 

을 그리고 컨트롤에 map.ascx.cs 파일에서 모든 메소드를 제거 예배 규칙서.

+1

이것은 작동하지 않습니다. "지도"유형은 App_Code에서 사용할 수 없습니다. asp.net이 컨트롤을 컴파일하는 방법과 관련이 있습니다. 그게 타입을 사용할 수있게하기 위해 <% Register 태그를 aspx에 요구함으로써 의미했던 것입니다. – MorganTiley

+0

그런 경우에는 일반적으로 코드 숨김 파일 (예 : Map.ascx.cs)을 App_Code 폴더로 이동했습니다. –

+0

라이언 - 감사합니다. 코드 숨김은 ascx 코드의 컨트롤을 참조하기 때문에 사이트가 컴파일되지는 않습니다. 예 : icon.ImageUrl = imageUrl; 오류 : 현재 컨텍스트에 '아이콘'이름이 없습니다. – MorganTiley

1

지도가 있습니까 :

+0

동의. 나는 .ascx.cs 파일을 App_Code로 옮기는 것에 대해서도 언급하지 않았다. –

+1

닫기 - 나는 ascx 파일에 page_load와 같은 메소드를 옮겨야했지만 지금은 메서드/public 속성 인라인에서 Viewstate에 액세스하는 데 문제가 있습니다. public GUid placeID {get {return (Guid) ViewState [ "placeID"]; } set {ViewState [ "placeID"] = value; }} Viewstate가 인식되지 않습니다. – MorganTiley

관련 문제