Ho un gridview di ASP.net che sto cercando di associare. My DataSource ha una raccolta e 2 delle colonne a cui sono impegnato fanno parte di una sottoclasse. My DataSource ha una sottoclasse chiamata Staff che contiene le informazioni sullo staff. I campi di rilievo SurveyID e NumberOfExceptions si collegano correttamente, ma non è possibile associare Staff.Name e Staff.Office.
Come si associa una colonna della griglia a un valore di sottoclasse?
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" ...
E il codice è dietro:
uxSurveyGrid.DataSource = searchResults;
uxSurveyGrid.DataBind();
Se scriv searchResults[0].Staff.Name
nel codice dietro riesco a vedere il valore, perché è il runtime non essere in grado di valutare Staff.Name in GridView ?
Come si associano le colonne ai valori di sottoclasse? Devo farlo in codebehind?
Qualsiasi aiuto sarebbe gradito,
Mark.
Il "personale" ha un getter/setter per questo? La classe Staff ha getter/setter definiti sia per "Name" che per "Office". Una delle condizioni per DataBinder.Eval (che sono abbastanza sicuro è ciò che viene utilizzato da BoundField per accedere ai dati) è che getter/setter devono essere definiti per il valore che tenta di essere recuperato. –