2011-05-05 6 views
0


Enrollment 개체가 채워진 학생 등록 ​​gridview가 있습니다. 등록 개체에는 학생 ID가 있습니다. 그 ID로, 등록 gridview의 2 열 (Student 객체의 3 가지 속성에서)을 채 웁니다.
지금 당장은 아래 코드를 사용하고 있습니다. 이것은 동일한 객체에 대한 데이터베이스에 대한 3 회의 왕복을 의미하므로 매우 나쁩니다. 같은 개체를 사용하여 3 가지 속성을 얻으려면 어떻게해야합니까?GridView의 여러 열에 대해 동일한 개체 사용

<asp:TemplateField HeaderText="Student Name"> 
       <ItemTemplate> 
        <asp:Label ID="lblName" runat="server" Text='<%# string.Format("{0} - {1}", StudentProfile.GetStudentProfileById(Convert.ToInt32(Eval("StudentId"))).FirstName, StudentProfile.GetStudentProfileById(Convert.ToInt32(Eval("StudentId"))).Surname) %>'></asp:Label> 
       </ItemTemplate> 
      </asp:TemplateField> 
      <asp:TemplateField HeaderText="Student DOB"> 
       <ItemTemplate> 
        <asp:Label ID="lblDOB" runat="server" Text='<%# StudentProfile.GetStudentProfileById(Convert.ToInt32(Eval("StudentId"))).DateOfBirth %>'></asp:Label> 
       </ItemTemplate> 
      </asp:TemplateField> 

편집 : 참고로, 필자는 텍스트 상자를 추가하여 각 행에 추가하는 gridview 행을 업데이트해야합니다. 이 시점에서 답변을 적절하게 유지할 수 있습니까?

대단히 감사합니다!

답변

2

데이터를 gridview에 바인딩하는 방식이 잘못되었습니다. 개체/컬렉션에 Data을 가져와 DataSource의 데이터를 GridView에 바인딩해야합니다.

여기 Displaying Data With the ObjectDataSource를 봐뿐만 아니라 당신은 내가의 GridView 열을 기준으로 반영 중간 오브젝트를 저장하는 클래스를 생성한다는 의미 Querying Data with the SqlDataSource Control

+0

이것 좀 봐? –

+1

데이터베이스에서 모든 데이터를 한꺼번에 가져 와서 컬렉션/데이터 테이블을 만든 다음 해당 컬렉션/데이터 테이블을 grdivew에 바인딩 할 수 있습니다 –

관련 문제