Tôi có một GridView ASP.net mà tôi đang cố gắng liên kết với. DataSource của tôi có một bộ sưu tập và 2 trong số các cột mà tôi ràng buộc là một phần của một lớp con. DataSource của tôi có một phân lớp được gọi là Nhân viên chứa thông tin nhân viên. Các boundfields SurveyID và NumberOfExceptions ràng buộc tốt, nhưng Staff.Name và Staff.Office không thể bị ràng buộc.
Làm thế nào để bạn liên kết một cột GridView với một giá trị lớp con?
asp:BoundField DataField="SurveyID" HeaderText="ID" ...
asp:BoundField DataField="Staff.Name" HeaderText="Name" ...
asp:BoundField DataField="Staff.Office" HeaderText="Office" ...
asp:BoundField DataField="NumberOfExceptions" HeaderText="Exceptions" ...
Và mã đằng sau là:
uxSurveyGrid.DataSource = searchResults;
uxSurveyGrid.DataBind();
Nếu tôi gõ searchResults[0].Staff.Name
trong mã đằng sau tôi có thể nhìn thấy giá trị, tại sao thời gian chạy không thể đánh giá Staff.Name trong GridView ?
Làm cách nào để bạn liên kết các cột với các giá trị lớp con? Tôi có phải làm điều đó trong codebehind không?
Bất kỳ trợ giúp nào sẽ được đánh giá cao,
Đánh dấu.
Có phải "Nhân viên" có bộ thu thập thông tin/setter cho nó không? Lớp nhân viên có getter/setters được định nghĩa cho cả hai "Name" và "Office". Một trong những điều kiện cho DataBinder.Eval (mà tôi khá chắc chắn là những gì BoundField sử dụng để truy cập dữ liệu) là getter/setters được định nghĩa cho giá trị cố gắng để được lấy ra. –