2009-09-28 1 views
3

내 UserControl을 내 텍스트 상자에 접근은 UserControl을 - 나는 C#을 .NET을 사용하고 웹 양식

나는 내 웹 양식에서 다른 관점을 가지고,이 모든 일반적으로 세 개의 텍스트 상자 (도착/볼/시간을 출국 일)을 제외한 다른 정보를 표시합니다. 시도하고 코드를 줄이기 위해 이러한 세 개의 텍스트 상자가 포함 된 UserControl 만들었습니다.

나는 Webform의 상단과 각보기 내에서 UserControl을 참조했습니다.

<%@Register TagPrefix="uc1" TagName="userTimes" Src="~/usercontrols/userTimes.ascx"%> 
<uc1:userTimes id="userAppointmentTimes" runat="server"></uc2:userTimes> 

코드 뒤에서 텍스트 상자에 액세스 할 수 없습니다. 먼저 텍스트 상자를 채우고 변경된 경우 업데이트 된 정보를 다시 데이터베이스에 다시 삽입해야합니다.

또한 각 텍스트 상자 두 검증 제어하고있다 : MM

  • 두 번째 도착이 볼 시간 등
  • 전에 입니다 확인합니다 :

    1. 먼저이 시간에 있는지가 형식 HH가 있습니다

      두 가지 질문은 다음과 같습니다.

      1. 어떻게 접근합니까? UserControl에서 코드 뒤에 ? 나는 내가 FindControl을 사용해야한다는 것을 읽었지만 이유를 이해하지 못한다. 내가 알고있을 때 이 무엇인지 알 수있다.
      2. UserControl 코드 또는 웹 양식 코드 뒤에 (서버 쪽) 유효성 확인을 수행합니까?

      미리 도움을 청하십시오.

      클레어

    답변

    3

    1.) 당신은 뒤에 페이지의 코드에서 ID로 사용자 정의 컨트롤에 액세스 할 수 있습니다 - userAppointmentTimes를 귀하의 경우. Webform 내의 TextBox에 액세스하려면 사용자 정의 컨트롤에서 FindControl-Method를 사용해야합니다. 그래서 뭔가 UserAppointmentTimes.FindControl ("WhateverTextBoxID")와 같이 작동해야합니다. 물론 TextBox에 결과를 캐스팅해야합니다.

    ASP.Net에서 자동으로 노출되지 않으므로 텍스트 상자에 액세스 할 수 없습니다. 따라서 사용자 정의 컨트롤 내부의 텍스트 상자에 값을 설정하거나 값을 가져 오는 공개 속성을 제공 할 수도 있습니다.

    사용자 정의 컨트롤 내에서 ID로 텍스트 상자에 액세스 할 수 있습니다.

    2.) 유효성 검사 컨트롤을 사용자 정의 컨트롤 안에 넣습니다.

    webform을 사용하면 asp.net form-tag 안에 모두 들어 있거나 FormView가 중첩 된 asp.net 양식을 가지고 있습니까? 후자가 true이면 FormView 수준에서 FindControl (formView.FindControl ("userAppointmentTimes"))을 사용해야합니다. 그렇지 않으면 페이지 컨트롤에서 ID를 통해 사용자 정의 컨트롤에 액세스 할 수 있습니다.

    관련 문제