3 messaggi dal 29 gennaio 2012
salve gente
sto cercando una soluzione per questo problema

ho costruito una query con dei valori ricavati da delle variabili nella parte programmabile in c# della pagina (default.aspx.cs)

immaginate qualcosa del genere:
"SELECT * FROM pippo WHERE id_pippo = "+miavariabile+" ";

ora il punto è che io vorrei passare questa query al accessdatasource a cui fa riferimento un gridview e popolarlo con il risultato..


come faccio a passere il parametro?

grazie a tutti per l'attenzione
11.886 messaggi dal 09 febbraio 2002
Contributi
Ciao,
l'AccessDataSource ha due caratteristiche che ti possono tornare utili.
  • Un attribuo "SelectCommand" che valorizzi o dalla pagina .aspx o dal codefile .cs. Puoi valorizzarlo con una query SELECT che contenga dei parametri come ad esempio: SELECT * FROM pippo WHERE id_pippo=@id_pippo.
  • Vedi il parametro @id_pippo contenuto nella query qui sopra? Ebbene, al suo posto l'AccessDataSource gli sostituirà un valore. Sta a te decidere da dove deve esser preso questo valore. Una delle fonti più comuni è la QueryString, ma puoi attingere dal form, da una variabile di sessione, da un cookie, e così via.


In questo esempio creo un AccessDataSource e lo configuro in modo che il valore del parametro @id_pippo sia letto da una variabile querystring chiamata id_pippo.

<asp:AccessDataSource ID="source" DataFile="~/App_Data/pippo.mdb" SelectCommand="SELECT * FROM pippo WHERE id_pippo=@id_pippo" runat="server">
    <SelectParameters>
        <asp:QueryStringParameter Name="id_pippo" QueryStringField="id_pippo" />
    </SelectParameters>
</asp:AccessDataSource>
In questo caso non ho dovuto scrivere alcun codice nel codefile .cs. Nel momento in cui visiterò la pagina in questo modo:
default.aspx?id_pippo=3
l'AccessDataSource recupererà autonomamente la variabile id_pippo dalla querystring, perché così è stato configurato, e userà il suo valore (3) nella query SELECT.

ciao
Modificato da BrightSoul il 02 aprile 2012 21.41 -

Enjoy learning and just keep making
3 messaggi dal 29 gennaio 2012
intanto grazie per la risposta....

alla fine ho risolto in un altro modo
mi son creato un datatable con le rispettive colonne
e l'ho popolato con un arraylist con un ciclo for
poi ho passato i valori del datatable ad un datasource

come spiegato su questo sito
http://www.aspdotnet-suresh.com/2010/12/v-behaviorurldefaultvmlo_21.html

un ultima domanda
se creo una variabile int i=0 nel cs
posso leggerne il valore nel file aspx come @i
??
cioè è questo il modo per leggere i valori che stanno su cs in aspx?
@miavariabile??

grazie ancora la tua risposta mi è comunque utile
carl_
11.886 messaggi dal 09 febbraio 2002
Contributi
ciao,

carloef ha scritto:

se creo una variabile int i=0 nel cs posso leggerne il valore nel file aspx come @i??


no, dunque, se dall'interno della GridView ti occorre conoscere l'indice dell'elemento corrente (0, 1, 2, ...) allora puoi leggerlo da Container.DataItemIndex. In questo esempio lo uso all'interno di un TemplateField in una GridView:
<asp:GridView ID="griglia" runat="server">
  <Columns>
    <asp:TemplateField>
      <ItemTemplate>
        <%# Container.DataItemIndex %>
      </ItemTemplate>
    </asp:TemplateField>
  </Columns>
 </asp:GridView>


Invece, se devi accedere ad una funzione o ad una variabile definite nel file .cs, allora puoi accedervi usando direttamente il loro nome. Esempio:
<%# nomevariabile %>
Fai attenzione: affinché tu possa "vederla" dalla pagina aspx, è necessario che la variabile sia stata definita a livello di pagina. Esempio:
public partial class pagina : System.Web.UI.Page
{
  protected string nomevariabile;
  ...
}
Poi ovviamente dovrai assegnargli un valore in qualche punto del file cs, ad esempio nel Page_Load, ma l'importante è che sia stata dichiarata in quel punto, subito dentro la classe Page.

Comunque, prova a risolvere il problema con l'AccessDataSource: fare il databinding dichiarativo rende il codice più leggibile e lascia il tuo file .cs immacolato.

ciao
Modificato da BrightSoul il 03 aprile 2012 22.05 -

Enjoy learning and just keep making

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.