2009-12-25 4 views
1

나는 내가 생성 한 달력이 있습니다. 현재 전체 월을 만들고 각 셀을 숫자 (날짜를 나타냄)로 채 웁니다.데이터를 올바른 캘린더 셀에 삽입하는 방법은 무엇입니까?

이제 데이터베이스에서 값을 가져 와서 셀을 채우고 싶습니다. 어떻게하면 효율적으로 할 수 있습니까?

지금처럼 나는 데이터베이스에서 데이터를 가져 오는 것만 생각할 수 있습니다. 한 번 그 데이터를 통해 내려가는 본질적으로 30 진술처럼 어떤 세포로 들어가야 결정하기 위해 가지고있다.

매우 나쁜 방식 인 것 같아서 더 좋은 방법을 생각하고 있습니다. 그래서 나는 다른 누군가가 어떤 생각을 가지고 있는지 궁금해하고있다.

asp.net mvc를 사용하고 있습니다. 내 컨트롤러를 통해 캘린더의 본문 (그냥 테이블)을 생성하고 HTML 셀과 행의 문자열로 전달합니다.

그래서 기본적으로 컨트롤러에서 TagBuilder를 사용하여 7 개 셀 (이전 달 2 셀, 나머지 셀은 다음 달에 42 셀 - 기본적으로 Windows 7 캘린더처럼 보입니다)의 6 개 행을 생성하고 하나로서 반환합니다. 큰 문자열.

따라서 셀을 구축하는 동안 if 문을 사용하여 검사를 수행해야합니다.

저는 linq을 사용하여 SQL에 도움이되는지 확실하지 않습니다.

편집

나는 생각하지만, 그것을 할 방법을 잘 있었는지 또 다른 방법. 범위에서 모든 날짜를 얻는 방법이 될 수 있습니다. 그런 다음 결과를 가져 와서 결과에 대해 그룹화하십시오. 그런 종류의 그룹화 방법에 대해서는 잘 모릅니다. 첫 번째 결과에 대한 그룹화를 수행하고 각 날짜에 대한 요청을하지 않은 다음 그룹화하면 나쁘지 않을 것입니다. 그렇지 않으면 나는 모든 것을 그룹화하기 위해 데이터베이스에 42 개의 요청을하는 것을보고있다.

답변

1

어쨌든 반복 할 필요가있는 행과 열을 작성해야합니다. 그 달에 먼저 데이터를 가져 와서 배열에 데이터를 저장하고 (내가 아는 구식) 데이터를 확인하십시오. 셀 렌더링을 통해 증가 할 때 해당 배열에서 오프셋됩니까?

+0

오프셋이란 무엇입니까? – chobo2

+0

그럼 약속이 있다고 말하면, 당신은 루프 안에서 offset ++을하고 약속 [offset]을 확인하십시오! = null – blowdart

+0

나는 아직도 따라 가지 않습니다. 배열을 살펴보고 null과 비교하는 것을 보았습니다.하지만 42 개의 다른 날짜와 비교해 보았습니다. 그런 다음 그 날짜를 저장하거나 무언가를 한 다음 결국 올바른 셀에 넣으십시오. 그래서 어떻게 든 먼저 모든 그룹화를 한 다음 배열이나 그 안에 그룹을 저장 한 다음 마침내 셀에 넣을 생각입니다. – chobo2

관련 문제