당신은 어떻게 수동으로 바인딩은 복잡한 물체 템플릿을 컨트롤 다음과 같은 행에서트?
-
22-08-2019 - |
문제
나는 어려움을 겪고 데이터 바인딩 구문에 여기에.예를 들어 나가는 데이터 구조는 다음과 같이-
public class Course{
public string CourseName {get;set;}
public string CourseCode {get;set;}
public List<Instructor> InstructorsTeaching{get;set;}
}
public class Instructor{
public string InstructorName{get;set;}
public string InstructorCode{get;set;}
}
지금 내가 원하는 경우 바인딩은 이 목록 과정을 말하는 것트를 수동으로 할 수 있는
<asp:TextBox runat="server" ID="tbCourseName" Text='<%# Bind("CourseName")%>'/>
를 지정하는 동안에 대한 템플릿의 격자 하지만 나는 어떻게 바인딩 강사의 교육 시설을 말하는 것 목록 상자에서 동일한 행하게 파악하는 구문에,여기에는 exaple 내가 무엇을 시도하고 실패
<asp:ListBox runat="server" ID="tbInstructors"
DataSource='<%# Eval("InstructorsTeaching") as List<Instructor> %>'>
<asp:ListItem Text='<%# Bind("InstructorCode")%>'
Value='<%# Bind("InstructorName")%>'/>...
<as:ListBox/>
내가 위의 코드 작동하지 않 for sure:).이상적으로 나가고 싶은 이에서 마크업 코드 대신 뒤에 있습니다.
해결책
나는 생각하지 않는 설정할 수 있는 데이터 소스는 시도하에 그것을 설정 트의 RowDataBound 이벤트
다른 팁
당신은 히트에서 중요한 이유 ASP.NET 2 양방향 데이터 바인딩을 빤:당신이 정말로 할 수 없는 중첩된 2-방법으로 데이터 바인딩.
한가지만,당신은 그것을 할 수 있습 Eval,ASP.NET 을 허용하지 않는 중첩 그래프는 구문으로 바인드 표현,(i.e<%#Bind("고객입니다.이름")%>).
을 넘어,중첩된 목록 컨트롤 다음과 같은 시나리오,각 목록에 추가로 필요 DataSource 제어합니다.당신이 설정 데이터 소스에서 당신의 목록 상자에서 작동하는 Eval 표현,그러나 바인딩에 대한 표현하는 작업을 사용해야 합니다 DataSourceID 을 제공하의 ID DataSource 제어를 제공하는 안 결과를 설정합니다.심지어 다음의 결과는 어수선하고 시끄러운 곳에서 수 있기 때문에만 업데이트 중 하나 datasource 니다.
2-데이터 바인딩 방법은 아마도 서면으로 SqlDataSource 에서 마음과하지 않 ObjectDataSource.이 있는 경우 다단계 개체 그래프,당신은 그것을 찾을 수 있습 고통을 사용하여 2 양방향 데이터 바인딩.