Domanda

Prima di farlo ho pensato che avrei chiesto se fosse il modo migliore. Ogni "fornitore" l'oggetto ha un " Bucket " oggetto. Nel mio ripetitore ho bisogno di visualizzare alcune proprietà dal fornitore e alcune da Bucket, anche alcune immagini popolate da FileSystem che sono collegate al fornitore. Ho pensato che il modo migliore per farlo fosse quello di legare il ripetitore con l'oggetto fornitore, quindi su ItemDataBound avrei popolato le immagini e i secchi in base al fornitore che è legato a quegli elementi particolari [e.Item.ItemIndex].

È questo il modo migliore per farlo?

È stato utile?

Soluzione

Se l'oggetto Vendor può contenere solo un singolo oggetto Bucket, potrebbe essere opportuno associare tutto in un singolo ripetitore di livello superiore. Puoi accedere a Bucket tramite una semplice associazione di dati al livello superiore senza sovrascrivere ItemDataBound.

Poiché molto probabilmente stai vincolando il "fornitore", hai accesso ai suoi membri in una banca dati se vuoi farlo in questo modo:

<%# DataBinder.Eval (Container.DataItem, "Bucket.Property" ) %>

Vuoi fare ItemDataBound se devi " elaborare qualcosa " durante ogni iterazione dell'associazione e necessita di un accesso dettagliato a ciascun oggetto Venditore per il processo decisionale.

Se l'oggetto Fornitore può contenere più bucket, il modo migliore per accedervi è tramite ItemDataBound. Ad ogni iterazione del fornitore è possibile associare un nuovo ripetitore nidificato per visualizzare i dati del bucket o eseguire qualsiasi funzionalità di ripetizione / aggregazione di cui si possa avere bisogno.

A seconda di come vuoi che si comporti sul tuo client, puoi rendere solo i fornitori. Quando l'utente fa clic sul fornitore (o qualsiasi altra cosa), è possibile eseguire una chiamata AJAX al server che recupera i dati Bucket e li rende dinamicamente nella pagina. Potresti provare questo approccio se c'è un gran numero di fornitori con il rendering dei loro bucket. Ciò aiuterebbe le prestazioni del database e il tempo di rendering della pagina in contrasto con la creazione di tutto sul lato server ASPX. (Ma questo dovrebbe essere un sacco di dati, dovresti farlo per motivi di usabilità / cliente prima di provare a meritare guadagni in termini di prestazioni.)

Altri suggerimenti

Questo è il modo in cui di solito ci provo, lego l'oggetto principale e gestisco i dettagli in ItemDataBound.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top