molto utile... ma se volessi recuperare i valori del DataSource xml ad esempio in OnItemDataBound del repeater... su cosa devo fare il cast del e.item.DataItem per avere gli stessi valori che duranti il binding sono recuperati attraverso XPath?

ad esempio:

protected void rptReports_OnItemDataBound(Object Sender, RepeaterItemEventArgs e)
{
// qui vorrei avere lo stesso valore che ottengo durante il binding in pagina con XPath("xmlnodename")
//se faccio il cast su e.item.DataItem mi torna
//{System.Web.UI.WebControls.XmlDataSourceNodeDescriptor}
// che rappresenta il mio nodo ma non ha proprieta' pubbliche...
//
}


esiste un modo meno macchinoso che usare reflection per scopire i valori del nodo usato per il binding da CodeBehind?

se volessi filtrare i dati della mia sorgente xml settata nel XmlDataSource con parametro da QueryString e lo volessi fare non da codebehid, ma dentro il template html... come devo scrivere il codice?
ovvero l'equivalente di questa sintassi ma in pagina
RptDataSource.XPath = "reports/report[@pid='"+Request.QueryString["pid"]+"']";
in Pagina sarebbe simile ma non riesco a gestire la sintassi corretta

<asp:XmlDataSource
ID="RptDataSource"
runat="server"
DataFile="~/App_Data/Reports.Xml" EnableCaching="True" CacheDuration="Infinite"
XPath = "reports/report[@pid='"+Request.QueryString["pid"]+"']"
></asp:XmlDataSource>
Primo problema risolto...
direi che la soluzione era ben nascosta!
XPathNavigator xmlNode = ((IXPathNavigable)e.Item.DataItem).CreateNavigator();

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.