Passaggio campi da una grid view ad una pagina nuova

mercoledì 03 marzo 2010 - 21.29

mauri1961 Profilo | Senior Member

Dalla selezione di una grid view dovrei aprire una pagina nuova per dettagliare altri dati, ho provato inserendo un HYPERLINKFIELD ma aprendo la pagina della gridview mi segnala errore dicendo che i due campi non esistono (sicuramente perche’ non sono sintatticamente corretti).
I campi che dovrei passare sono RIP_CODICE RIP_PERIODO (il primo non compare nella grid_view ma fa parte dei campi estratti.
Qui sotto riporto il codice:

<asp:GridView ID="GridView1" runat="server"
CaptionAlign="Right" CellPadding="4" DataSourceID="SqlDataSource1"
Font-Names="Calibri" Font-Size="Medium" ForeColor="#333333"
GridLines="None">
<RowStyle BackColor="#F7F6F3" ForeColor="#333333" />
<Columns>
<asp:HyperLinkField SortExpression="rip_codice rip_periodo"
DataTextField="rip_codice rip_periodo"
DataNavigateUrlFormatString="vw-acca.aspx?coditta={0},coperiodo={0}"
DataNavigateUrlFields="rip_codice rip_periodo"
HeaderText="Visua Operai" Text="Seleziona" />
<asp:BoundField DataField="RIP_PERIODO" HeaderText="periodo"
SortExpression="RIP_PERIODO" />
<asp:BoundField DataField="RIP_ACCANT" HeaderText="accanton."
SortExpression="RIP_ACCANT" />
<asp:BoundField DataField="RIP_CONTR" HeaderText="contributi"
SortExpression="RIP_CONTR" />
<asp:BoundField DataField="RIP_PREVEDI" HeaderText="prevedi"
SortExpression="RIP_PREVEDI" />
<asp:BoundField DataField="RIP_INTERESSI" HeaderText="interessi"
SortExpression="RIP_INTERESSI" />
<asp:BoundField DataField="Rip_SEGNODB" SortExpression="Rip_SEGNODB" />
<asp:BoundField DataField="RIP_DEBCRED" HeaderText="deb/cred"
SortExpression="RIP_DEBCRED" />
<asp:BoundField DataField="RIP_SEGNOCON" SortExpression="RIP_SEGNOCON" />
<asp:BoundField DataField="RIP_CONGUAGLIO" HeaderText="conguaglio"
SortExpression="RIP_CONGUAGLIO" />
<asp:BoundField DataField="RIP_SPESELEG" HeaderText="sp,legali"
SortExpression="RIP_SPESELEG" />
<asp:BoundField DataField="RIP_TOTALE-S" SortExpression="RIP_TOTALE-S" />
<asp:BoundField DataField="RIP_TOTALE" HeaderText="totale"
SortExpression="RIP_TOTALE" />
<asp:BoundField DataField="RIP_VERSAMENTO" HeaderText="versato"
SortExpression="RIP_VERSAMENTO" />
<asp:BoundField DataField="RIP_DIFFE" HeaderText="differenza"
SortExpression="RIP_DIFFE" />
<asp:BoundField DataField="RIP_VALUTA" HeaderText="valuta"
SortExpression="RIP_VALUTA" />
<asp:BoundField DataField="RIP_DATAVERS" HeaderText="data vers."
SortExpression="RIP_DATAVERS" />
<asp:BoundField DataField="RIP_DATARIPA" HeaderText="data ripart."
SortExpression="RIP_DATARIPA" />
</Columns>
<FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
<PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" />
<SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" />
<HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
<EditRowStyle BackColor="#999999" />
<AlternatingRowStyle BackColor="White" ForeColor="#284775" />
</asp:GridView>
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:CASSAWEBConnectionString %>"

SelectCommand="SELECT * FROM [WEB_RIPA] WHERE ([RIP_CODICE] = @RIP_CODICE)">
<SelectParameters>
<asp:QueryStringParameter Name="RIP_CODICE" QueryStringField="coditta" />
</SelectParameters>

</asp:SqlDataSource>

come si può vedere questa grid view si appoggia su sqldatasource1...



grazie, Maurizio

skraus Profilo | Junior Member

<asp:HyperLinkField SortExpression="rip_codice rip_periodo"
DataTextField="rip_codice rip_periodo"
DataNavigateUrlFormatString="vw-acca.aspx?coditta={0},coperiodo={0}"
DataNavigateUrlFields="rip_codice rip_periodo"
HeaderText="Visua Operai" Text="Seleziona" />

DataTextField non può accettare due nomi di campi. Esso serve come alternativa della proprietà Text. Ossia il testo che vuoi mostrare nella colonna su cui sia attivo il link, lo puoi rendere costante per tutti i record assgnando una stringa alla proprietà Text, oppure leggere il valore direttamente da una colonna del db ed in tal caso valorizzi la proprietà DataTextField, con il nome della colonna del db (ricompresa tra quelle risultanti dal SQL Data Source).

Il valore assegnato alla proprietà NavigateUrlFormatString è sbagliato quello corretto è vw-acca.aspx?coditta={0}&coperiodo={1}.

I valori 0 ed 1 messi tra parentesi { } fanno riferimento agli indici dei valori assegnati alla proprietà DataNavigateUrlFields.

Ti allego cmq un file di esempio.

Ciao
Sk
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5