그래서 나는 실제로 내 자신에이 일을 알아낼 수 있었다. 기존 필드 템플릿 중 하나의 코드를 수정하여 내가 원하는 것을 할 수 있습니다.
앞에서 설명한 것처럼 삽입 페이지의 데이터 입력을위한 텍스트 상자를 가져 와서 해당 드롭 다운 목록이 다른 테이블의 데이터로 구성되는 값 드롭 다운 목록으로 전환하는 것이 좋습니다. 그런 다음 사용자가 필요한 값을 선택하면 삽입 프로세스의 일부로 데이터베이스로 다시 전달됩니다.
먼저 FieldTemplates 폴더에 새 컨트롤을 만듭니다. DropDown과 같은 이름을 지정하십시오. ascx, 코드 숨김 파일 및 디자이너 파일을 갖게됩니다.
그런 다음 ascum 파일에서 Enumeration_Edit에 대한 코드를 가져 와서 새 드롭 다운 컨트롤의 ascx 파일에 복사합니다. DropDownList 컨트롤의 ID 이름을 변경해야 할 수 있습니다.
코드를 사용하여 Enumeration_Edit 컨트롤의 코드에서 코드를 복사 한 다음 드롭 다운의 요구 사항을 충족하도록 코드를 변경합니다.
이
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
OnDataBinding();
}
SetUpValidator(RequiredFieldValidator1);
SetUpValidator(DynamicValidator1);
}
귀하의 OnDataBinding이 같이 설치해야한다 :
귀하의 PageLoad 클래스는 다음과 같아야합니다
public void OnDataBinding()
{
//Code for binding data from a query/stored proc to a dropdown should go here.
}
합니다 (ExtractValues 유지) 및 해당 DataControl() 클래스,하지만 당신은 제거 할 수 EnumType() 클래스
필요한 경우 참조를 추가해야합니다. Enumeration_Edit 컨트롤과 새 컨트롤에 대한 코드를 비교해보십시오.
이제 열의 텍스트 상자에서 컨트롤을 사용하여 데이터 삽입을 제어하려고합니다. [UIHint("DropDown")]
을 테이블의 부분 클래스에 대한 적절한 열 항목에 추가하면 표시 될 때 해당 열의 모든 인스턴스에 컨트롤이 적용됩니다. 각 테이블에 대해 사용자 지정 페이지 설정이 있으며이 컨트롤을 특정 열의 삽입 기능에 사용하기를 원합니다.
<asp:DynamicField DataField="COLUMN_NAME" UIHint="DropDown" ReadOnly="true" />
그것을에만이 페이지에서이 칼럼에 컨트롤을 적용,이 방법을 수행 : 따라서, 나는 다음과 같이이 열을 제어하는 라인을 만들기 위해이 테이블 내 삽입 페이지를 변경. ReadOnly 값을 true로 설정해야합니다. 그렇지 않으면 드롭 다운이 아닌 텍스트 입력 필드로 렌더링됩니다.
거기에서 삽입 페이지에는 해당 열의 데이터 입력에 대한 드롭 다운이 있어야합니다.
이 하나의 열에 만 필요하기 때문에 데이터를 내 드롭 다운에 묶는 코드는이 하나의 열에서만 작동하도록 설정됩니다. 컨트롤을 묶은 열을 기반으로 특정 열의 모든 값을 조회하는 쿼리를 작성하거나 드롭 다운 목록이 필요한 각 열에 대해 자체 필드 템플릿을 만들어야 할 수도 있습니다 에 대한.
순간에 어떻게하고 있는지 보여주는 몇 가지 코드를 추가하면 도움이 될 것입니다. – JRoughan
실제로 지난 며칠 동안 스스로 알아낼 수있었습니다. 내 솔루션을 게시했습니다. – MattD