2013-06-17 22 views
5
List<MasterBook> listOfBooks = new List<MasterBook>(); 

dopo che ho messo gli oggetti masterbook che tra l'altro hanno 3 campi (nome, ID e attivo) nella listaasp.net associare un elenco a un GridView

GridView1.DataSource = listOfBooks; 
GridView1.DataBind(); 

nel modulo web

<Columns> 

      <asp:TemplateField HeaderText="Book Name"> 
       <ItemTemplate> 
        <asp:Label ID="BookNameText" runat="server" 
          Text="<%#Container.DataItem%>"> 

        </asp:Label> 
       </ItemTemplate> 
      </asp:TemplateField> 
     </Columns> 

    </asp:GridView> 

il problema è che voglio per visualizzare il nome del Bookmaster nella colonna gridView questo codice Bookmaster stampa nella colonna come posso farlo digitare il nome

risposta

3

gettarlo ai MasterBook:

Text="<%# ((MasterBook) Container.DataItem).Name %>"> 
+0

thank u molto ha funzionato finalmente :) – user2401745

0

La rapida, sporco trucco soluzione consiste nel sovraccaricare il metodo della classe MasterBookToString() al fine di restituire quel nome. Impegnati seppuku in seguito se lo fai.

Il modo elegante e aggraziato è rendere an object datasource. In questo modo è possibile associare le colonne della vista griglia alle proprietà degli oggetti. Nel caso di una DataList o altri controlli di dati basati su modelli, è possibile associare le proprietà degli oggetti ai controlli figlio del controllo dati nei propri modelli.

La via di mezzo è nella risposta hutchonoid: valuta una proprietà dell'oggetto, non l'oggetto stesso.

4

Cambio:

<%#Container.DataItem%> 

A:

<%#Eval("name")%> 
0

Utilizzare questa sintassi:

<asp:Label ID="BookNameText" runat="server" 
         Text="<%# ((MasterBook)Container.DataItem).Name %>"> 
Problemi correlati