2012-08-30 1 views
1

나는 C# .Net에서 작업 중입니다. 나는 ASPX 페이지와 ASCX 페이지를 가지고있다. 내 ASCX 페이지에는 텍스트 상자와 HTML 이미지 버튼이 있습니다. 선택한 인덱스가 변경된 드롭 다운을 기반으로 true 및 false 프로세스를 활성화하고 싶습니다. 기본적으로 텍스트 상자를 사용하지 않도록 설정하고 이미지를 false로 표시해야합니다.사용자 컨트롤 텍스트 상자 - ASPX 코드 뒤에 사용 및 사용 안 함

여기

ContentPlaceHolder cph = (ContentPlaceHolder)this.Page.Master.FindControl("ContentPlaceHolder1"); 
PI_CompLocationTree userCntrl = (PI_CompLocationTree)cph.FindControl("PI_CompLocationTree1"); 
     userCntrl.TextBoxUSC = false; 
     userCntrl.ImgUSC = false; 

     if (analysisGroup.SelectedValue == "0") 
     { 
      userCntrl.TextBoxUSC = true; 
      userCntrl.ImgUSC = true; 
     } 
     else if (analysisGroup.SelectedValue == "1") 
     { 
      userCntrl.TextBoxUSC = true; 
      userCntrl.ImgUSC = true; 
     } 
     else 
     { 
      userCntrl.TextBoxUSC = false; 
      userCntrl.ImgUSC = false; 
     } 

내 ASCX 코드

..

public bool TextBoxUSC 
    { 
     set { txtLoc.Enabled = value; } 
    } 
    public bool ImgUSC 
    { 
     set { imgEdit.Visible = value; } 
    } 

이 값은 속성에 제대로 전달하는 .. 내 ASPX 페이지로드입니다. 그러나 텍스트 상자 컨트롤은 사용할 수없는 모드로만되어 있으며 이미지는 false로 표시됩니다. 컨트롤을 활성화하고 표시하는 방법

+1

사용 모두'Enabled'와'Visible'은,이다 그 게시물에 오타? –

+0

예 ... 텍스트 상자를 활성화하고 html 이미지로 볼 수 있습니다 ... – RobinHood

+0

PI_CompLocationTree1의 범위에 대해 궁금합니다. 그것은 aspx 페이지 내에 정의되어 있습니까 또는 중첩 된 마스터 페이지를 사용하고 있습니까? FindControl을 사용하지 않고 페이지에서 직접 PI_CompLocationTree1에 액세스 할 수 있습니까? 가장 좋은 대답은 이러한 조건에 따라 다를 수 있습니다. –

답변

1

Page_Load 이벤트에서 수행하는 대신 Page_Init 이벤트에서 수행하십시오.

는이 방법 사용 후 Page_Init 이벤트 드롭 다운 목록의 선택된 값을 얻으려면 :

if (Request["__EVENTTARGET"] != null) 
     { 
      string controlID = Request["__EVENTTARGET"]; 
      if (controlID.Equals(analysisGroup.ID)) 
      { 
       string selectedValue = Request.Form[Request["__EVENTTARGET"]].ToString(); 
       Session["SelectedValue"] = selectedValue; //Keep it in session if other controls are also doing post backs. 
      } 
     } 
+0

in init, 나는 선택한 인덱스 값을 드롭 다운 할 수 없습니다 ... 항상 선택된 인덱스로 0이됩니다 ... – RobinHood

+0

우리는 몇 가지 자바 스크립트 코드를 도입하여이 문제를 해결할 수 있지만 먼저 디버그에서 응용 프로그램을 실행합니다 드롭 다운 값을 수동으로 설정하고 필요한 결과가 나오는지 확인하십시오. –

+0

"드롭 다운 selectedIndex 속성은 Page_Init 이벤트 후에 바인딩되지만 Page_load 이전에는 해당 값이 viewstate에서로드되고 해당 값은 ddl에서 선택한 값이됩니다." 따라서 귀하의 경우 자바 스크립트 메소드를 작성하고 dropdown onchange 이벤트에서 호출하십시오.이 경우 해당 값을 숨겨진 필드에 설정하고 Page_Init 이벤트의 숨겨진 필드 값에 액세스하십시오. –

관련 문제