0

ASP.Net Dynamic Data, Visual Studio 2010 및 C#을 사용하여 작업하고 있습니다.(동적 데이터, ASP.Net, C#, 드롭 다운 목록 사용자 지정 .ascx 컨트롤) DROPDOWNLISTS에서 값을 전달하는 방법은 무엇입니까?

나는 연장의 .ascx 세 개의 사용자 지정 컨트롤 (FieldTemplates)이 있습니다 business_type.ascx, department.ascx을, 나는 내가 만 부서를 표시하고 싶습니다 = 6 첫 번째 콤보 상자 cod_business 유형에서 선택했다면 section.ascx

누구의 cod_business = 6

내가 500 개의 부서를 가지고 있지만 5, 128 및 446만이 그 규칙을 수행한다고하자.

  1. 40, 66, 222 (6)
  2. 346, 399, 400, 403, 458 = 128 cod_dept 한 = 5 cod_business cod_dept 가지고

    하기의도 I는 2,500 섹션이 있다고 가정하자 및 cod_business = 6

  3. 14, 45, 333, D 335 cod_dept있다 = 446 cod_business = 6

내가 아니라 제 콤보 박스로 표시 한하려는 섹션 만 그 cod_business = 6 누구의 cod_dept = 5 (128) 또는 (446)는, 어느에 따라 전 부서 콤보 상자

기억에서 선택했다 : 이것은 ASP.Net 4.0 동적 데이터에

이 달성 일을해야합니까?

저는 Steve Naughton의 계단식 솔루션을 보았지만 데이터베이스 지향적입니다.

각 드롭 다운 목록을 채우는 엔티티가 없지만 각 드롭 다운 목록 내에 포함 된 값 목록 자체는 드롭 다운 목록 인 "더 많은 고유 한 형식으로 연결"해야합니다. 일반적으로 작은 Excel 스프레드 시트 또는 작은 텍스트 파일에서이 값을 제공합니다.

감사합니다.

답변

0

처음에 드롭 다운 값을 어떻게 채우고 있습니까? 데이터 바인딩 된 컨트롤입니까?

아무튼 당신은 필터링을 달성하기 위해 포스트 백에서이 3 개의 컨트롤과 상호 작용할 방법이 필요합니다. 이를 수행하는 한 가지 방법은 DropDownList를 사용자 정의 컨트롤의 속성으로 표시하는 것입니다. 코드에서이 유사한 속성을 추가 할 뒤에 :

public DrowDownList List { 
get { return this.DropDownInsideTheControl; } 
set { this.DropDownInsideTheControl = value; } } 

OnSelectedIndexChanged 이벤트에 적절한 이벤트 처리기를 추가하고 trueAutoPostBack를 설정하고 갈 수 있어야합니다. 그런 다음 원하는 페이지를 관리 할 수있는 모든 컨트롤이 포함되어 있습니다.

이 접근 방식은 효과가 있지만, 3 개의 드롭 다운을 별도의 사용자 컨트롤로 분리하면 삶이 더 힘들어 질 것이라고 생각합니다. 이 세 가지 컨트롤은 모두 너무 밀접하게 관련되어 있으므로 동일한 컨트롤에 모두 포함시키는 것이 좋습니다. 이렇게하면 더 직접적으로 상호 작용하고 연결된 관계를 쉽게 관리 할 수 ​​있습니다. 위에 설명 된대로 컨트롤이 실행중인 Page에 목록을 계속 노출시킬 수 있습니다.

+0

감사합니다. ASP에서 작업하는 동안.Net Dynamic Data 컨트롤은 "On the Fly"엔진에 의해 결합되며 MetaData 파일에 정의 된 사항을 고려합니다. 그래서 모든 단일 드롭 다운 목록 (또는 다른 유형의 컨트롤)에 대한 사용자 지정 컨트롤이있는 경우에는 동일한 동작이 없기 때문에 가능합니다 (제 경우에는 PopulateListControl (DropDownList1) 메서드를 변경해야합니다) 드롭 다운 목록에서 이전 선택에서 수집 한 값) "delegates"는 여기에 필요하지만 사용자 지정 .ascx 컨트롤의 인스턴스를 만들 때 문제가 있습니다. –

+0

"... 귀하가 MetaData 파일에서 정의한 것에 동의 함"은 동적 데이터가 사용자가 설정 한대로 사용 (예 : ) [UIHint ("ForeignKeySections")] [DisplayName ("Sections ")] public 개체 t47tbl_sections {get; 세트; } 여기서 ForeignKeySections.ascx는 사용자 정의 FieldTemplate입니다. –

관련 문제