2012-03-29 2 views
0

저는 MVC3 프로젝트에서 작업하는 팀의 일원입니다. 우리 중 누구도 (아직) MVC3 전문가가 아니므로 질문을 올바르게하는 방법을 모르겠습니다. 나는 잠수하고 MVC 경험 많은 사람들에게 이해가되기를 바랍니다.MVC3의 조인 된 테이블에서 체크리스트 생성

HTML 데이터 입력 화면에는 3 개의 구성 요소 섹션이 있습니다. 왼쪽에는 큰 스크롤 목록, 가운데에는 세부 정보 상자, 오른쪽에는 다른 스크롤 목록이 있습니다. 왼쪽 목록은 그룹 테이블에서 가져온 그룹 코드 및 이름의 목록입니다. 이것은 _Groups라는 부분 뷰에 의해 그려집니다. 가운데 영역에는 현재 선택된 그룹의 세부 필드가 표시됩니다. 오른쪽 목록은 사람 이름의 스크롤 목록입니다. 가운데와 오른쪽 모두 _GroupDetails라는 부분 뷰에 그려집니다.

오른쪽 목록은 현재 우리에게 문제가되는 부분입니다. Groups 테이블, Persons 테이블 및 Group ID와 Person ID를 저장하는 intersect 테이블이 있습니다. 사람이 그룹에 속하면 그 사람 - 그룹 쌍에 대한 교차 레코드가 있습니다. 그렇지 않다면 없다. 현재 선택된 그룹 ID를 가져 와서 Persons 테이블에서 모든 레코드를 가져 와서 부울 필드를 추가하는 쿼리에 사용하려고합니다. 부울 필드는 사람이 현재 선택된 그룹에 속하면 T로, 그렇지 않으면 F 여야합니다. 그런 다음이 필드를 체크 상자 필드로 부울 필드와 옆에 이름이있는 체크리스트로 표시하려고합니다.

가장 좋은 방법은 무엇입니까?

- 내가 도움이 될 것입니다 희망 존


추가 정보 : 대한 생성자를 작성하는

public List<GlobalName> UserList { get; set; } 

가 가능 :이보기에 대한 우리의 데이터 모델은이 목록 정의를 포함 위의 설명과 같이 확인란을 설정하여 확인란, 사용자 이름 및 사용자 ID (기본 키)를 원하는 목록을 포함하는 목록으로 끝나는 쿼리 또는 일련의 쿼리를 포함하는이 목록?

+0

시작 지점으로 사용하는 코드를? – PinnyM

+0

관련 코드 및 데이터 클래스가 6 개 이상의 서로 다른 파일에 분산되어 있으므로 어디에서 시작할 것인지 잘 모르겠습니다. – jwoolf09

+0

이것은 MVC에만 국한되지 않는 데이터 추출 질문입니다. 어떤 ORM을 사용하여 데이터 계층에서 EntityFramework, Hibernate 등을 사용하여 데이터베이스와 통신합니까? 이것은 물론 당신이 이것을 사용하고 있다고 가정합니다 ... 이것에 기초하여 질문을 다시 할 수도 있습니다. MVC는 데이터 검색 방법을 직접적으로 다루지 않으며 모델 및 뷰 형식으로 표현하는 방법을 직접적으로 다루지 않습니다. – PinnyM

답변

0

MVC에는 SelectList와 마찬가지로 CheckBoxList 도우미 메서드가 내장되어 있지 않습니다. 그러나 주변에는 많은 확장 기능이 있으므로 바퀴를 다시 만들 필요가 없습니다. 몇 가지 예를 들면 here, here 또는 here을 확인할 수 있습니다.

MvcCheckBoxList 확장자를 사용

, 예를 들어, 당신은이 작업을 수행 할 수 있습니다

// You'll need a view model 
class GroupPersonsCheckListViewModel 
{ 
    public IEnumerable<Person> Persons{ get; set; } 
    public Group Group { get; set; } 
} 

// In your controller action: 
var group = context.Group.Find(id); // assumes 'id' was passed to the action 
var allPersons = context.Persons.OrderBy(person => person.Name); 
var groupPersons = new GroupPersonsCheckListViewModel() { Persons = allPersons, Group = group }; 
return PartialView(groupPersons); 

// In your partial 
@Html.CheckBoxListFor("GroupPersons", 
    m => m.Persons,  // Collection of all persons 
    p => p.PersonId,  // Person ID attribute 
    p => p.Name,   // Person Name attribute 
    m => m.Group.Persons // Collection of persons that are currently associated with the group 
); 
+0

고마워, PinnyM.나는 지난 며칠 동안 다른 일에 집중하고 있었지만, 지금은 돌아 왔고 위의 내용은 많은 도움이 될 것 같습니다. – jwoolf09

관련 문제