2014-10-14 5 views
1

dropdownlists 및 textboxes에서 값을 캐치하고 데이터베이스에 저장하는 것과 관련하여 질문이 있습니다.ascx.file에서 동적으로 추가 된 컨트롤에서 값 가져 오기

MVC가 아니라 ASP.NET aspx 페이지를 사용하고 있습니다.

내 컨트롤이있는 ascx 파일 하나가 있습니다. 내 코드에서 동적으로 생성하고 있습니다. 포스트 백에 문제가 없으며 ViewState를 컨트롤의 카운터로 사용하고 있습니다. 모든 컨트롤에는 "ratingcontrols"+ viewState 카운터의 ID가 지정됩니다. 예를 들어 6 개의 드롭 다운리스트와 4 개의 텍스트 상자가 있고 카운터는 0에서 8까지입니다. 첫 번째 드롭 다운 목록에는 ID "ratingcontrols0", 두 번째 "ratingcontrols1"등이 있습니다. 내 첫 3 드롭 다운리스트는 실제로는 일별, 월별, 일년으로 분리되어 있으며, 이는 내 달력을 나타냅니다. 다음 3 번의 드롭 다운리스트는 제 두 번째 캘린더입니다.

버튼을 클릭하여 컨트롤을 추가하면이 10 개의 컨트롤이 내 ascx 파일의 그룹으로 만들어집니다. 버튼을 두 번 클릭하면 다른 10 개의 컨트롤 그룹이 생깁니다. 이제 내 카운터는 9 월 17 일에 내 ID로 이동합니다.

내 질문은, 그 값을 얻는 방법, 각 그룹을 내 데이터베이스에 추가하는 방법과 선택한 값을 가진 날짜에 3 개의 드롭 다운리스트의 각 그룹을 연결하는 방법입니까?

답변

1

다음 코드는 나를 위해 일했습니다

((TextBox)FindControlRecursivelyByID(this.Page, "controlID")).Text == "SomeText" 
:이 메서드를 호출하면

public Control FindControlRecursivelyByID(Control controlToSearch, string controlToFind) 
{ 
    Control rtnCtrl = null; 
    foreach (Control ctrl in controlToSearch.Controls) { 
     if (ctrl != null && ctrl.ID == controlToFind) { 
      rtnCtrl = ctrl; 
     } else { 
      if (ctrl.HasControls & rtnCtrl == null) { 
       rtnCtrl = FindControlRecursivelyByID(ctrl, controlToFind); 
      } 
     } 
    } 
    return rtnCtrl; 
} 

, 당신은 또한 directcast을 수행해야합니다

관련 문제