30 messaggi dal 17 agosto 2002
Ciao a tutti,
remetto che ho da poco iniziato a programmare con asp.net e ajax ma devo risolvere un problema.
Alla prima visualizzazione della pagina la gridview deve esporre l'intero contenuto di una tabella.
Cliccando su un pulsante devo filtrare i dati della tabella in funzione di un parametro e aggiornare la gridview.
Attualmente cliccando sul pulsante, mi da l'errore che sia il datasource che il datasourceid sono dichiarati per la gridview.
Spero di essere stato chiare.
Vi ringrazio per ogni aiuto.
non puoi specificare la sorgente dati utilizzando contemporaneamente la proprietà DataSource e DataSorceID.

se vuoi cambiare i criteri di selezione, ad esempio di un SqlDataSorce devi creare un event handler per l'evento Selectiog dell'SqlDataSource

ciao marco

Chi parla senza modestia troverà difficile rendere buone le proprie parole.
Confucio

http://nostromo.spaces.live.com/default.aspx
30 messaggi dal 17 agosto 2002
Grazie Marco per la risposta.
Ti confesso che sono piuttosto a digiuno di .net.
Ho inpostato la fonte dati della griglia dal wizard. Quindi la doppia dichiarazione non l'ho decisa io.
In più il filtraggio della griglia deve avvenire attraverso un metodo esposto da un web service collegato che restituisce una collection di elementi.
Se dal wizard imposto la collection restituita dal metodo come fonte dati funziona al primo caricamento, ma se cerco di farlo con postback non va.
Scusami se ne approfitto, ma potresti darmi qualche indicazione in più?
Grazie. Ciao.
Modificato da webber75 il 05 settembre 2007 09.38 -
30 messaggi dal 17 agosto 2002
IL CODICE DELLA PAGINA Default.aspx E' QUESTO:

<ContentTemplate>
<asp:TextBox ID="txtRicerca" runat="server" Width="50px" />
<asp:Label ID="lblRisultato" runat="server" Font-Bold="True" />
<asp:LinkButton ID="LinkButton1" runat="server" OnClick="LinkButton1_Click">
Invia
</asp:LinkButton>
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="ID_Atleta" DataSourceID="AccessDataSource1">
<Columns>
<asp:BoundField DataField="ID_Atleta" HeaderText="ID_Atleta" ReadOnly="True" SortExpression="ID_Atleta" />
<asp:BoundField DataField="Nome" HeaderText="Nome" SortExpression="Nome" />
<asp:BoundField DataField="Cognome" HeaderText="Cognome" SortExpression="Cognome" />
<asp:BoundField DataField="Eta" HeaderText="Eta" SortExpression="Eta" />
</Columns>
</asp:GridView>
<asp:AccessDataSource ID="AccessDataSource1" runat="server" ~/App_Data/NomeDB.mdb" SelectCommand="SELECT [ID_Atleta], [Nome], [Cognome], [Eta] FROM [Tabella_Atleti]">
</asp:AccessDataSource>
<br />
</ContentTemplate>

QUANDO CLICCO SUL BOTTONE FACCIO QUESTO:

Protected Sub btnInvia_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnInvia.Click

Dim Prova As New ServizioProva

GridView1.DataSource = Prova.EsponiCollezioneAtleti("VALORE SELEZIONE")

End Sub

IL CODICE L'HA PRODOTTO IL WIZARD. AVREI SOLO BISOGNO A RUN TIME DI CAMBIARE IL DATASOURCE VISTO CHE SUL CLICK DEL PULSANTE CAMBIO LA COLLECTION IN FUNZIONE DELLA QUERY DI RICERCA CON IL PARAMETRO CONTENUTO NELLA TEXT.

DOVE SERVIZIO PROVA è IL MIO WEB SERVICE E LA ROUTINE RICARICA INSERISCE I DATI DELLA TABELLA, FILTRATI VARIANDO LA QUERY DI SELEZIONE CON IL PARAMETRO, NELLA COLLECTION CHE IL WE SERVICE ESPONE COME DATASOURCE ALLA GRIDVIEW.

PERO' SUL CLICK MI AVVERTE DELL'ERRORE CHE PERO' NON SO RISOLVERE.

GRAZIE PER L'AIUTO.
prova prima di fare questo:

GridView1.DataSource = Prova.EsponiCollezioneAtleti("VALORE SELEZIONE")

a fare così:

GridView1.DataSorceID = String.Empty

non sono sicuro funzioni ma provare non costa nulla

ciao marco

p.s.

non usare le maiuscole è l'equivalente dell'urlare.

Chi parla senza modestia troverà difficile rendere buone le proprie parole.
Confucio

http://nostromo.spaces.live.com/default.aspx
30 messaggi dal 17 agosto 2002
Grazie Marco!
Ho fatto come mi hai detto.

GridView1.DataSourceID = String.Empty
GridView1.DataSource = Prova.EsponiCollezioneAtleti("valore selezione")

Ho solo aggiunto questo,
GridView1.DataBind()

e ora funziona!

Riguardo alle maiuscole, mi scuso, non lo sapevo. Mi sono iscritto al forum da molto ma non l'ho mai frequentato.

Grazie di nuovo, e ciao. Roberto

Grazie Marco!


di nulla


Riguardo alle maiuscole, mi scuso, non lo sapevo. Mi sono iscritto al forum da molto ma non l'ho mai frequentato.


non ti preoccupare

ciao marco e buon lavoro

Chi parla senza modestia troverà difficile rendere buone le proprie parole.
Confucio

http://nostromo.spaces.live.com/default.aspx
30 messaggi dal 17 agosto 2002
Sono di nuovo qui...
Ora ho un altro problema. Contenuto della griglia deve essere filtrato in base al valore selezionato in una dropdownlist nel momento in cui lo seleziono.
Ho provato ad inserire negli eventi:

DropDownList1_SelectedIndexChanged

e

DropDownList1_TextChanged

il codice:

GridView1.DataSourceID = String.Empty
GridView1.DataSource = Prova.EsponiCollezioneAtlet(DropDownList1.SelectedItem.Text)
GridView1.DataBind()

ma non succede niente.

La cosa strana è che invece funziona se seleziono il valore che voglio e poi clicco sul pulsante, anche se per il pulsante non è definita nessuna operazione.

Che succede?

PS. Scusatemi, posso continuare questa discussione o devo aprirne un'altra con questa domanda? Mi sembra comunque lo stesso argomento.

Ciao e grazie in anticipo.

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.