2 messaggi dal 17 settembre 2007
:)] Scusatemi.... mi affaccio per la prima volta ad un servizio di forum, chiedo scusa anticipatamente per il fastidio arrecatoVI dal sottoscritto.
Ho da poco intrapreso lo studio di C#, quindi non ho ancora molta dimestichezza con la programmazione ad oggetti. Vi chiedo scusa per gli eventuali strafalcione che faro. Vengo al dunque: Ho un programma di ricerca che crea una query di tipo dinamico su 4 possibili campi,mediante l'ggetto Gridview suddivido il risultato della ricerca su più pagine, il problema consiste nel fatto che non riesto a visualizzare le pagine successive alla prima, inquanto quando posiziono il mouse sul numero della pagina della gridview quest'ultima si chiude riportandomi nella condizione di scelta delle impostazione di ricerca.
allego il listato del programma fiducioso in un Vostro aiuto!



using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.WebControls.Adapters;
using System.Web.UI.HtmlControls;
using System.Data.OleDb;
using System.Diagnostics;


public partial class mdsn1_ricerca : System.Web.UI.Page
{


string connDB;

string sql, tipo, lin, ser, pos, ricerca;
AccessDataSource da;

protected void Page_Load(object sender, EventArgs e)
{
if (Page.IsPostBack == false)
{
tipo_prod.Focus();
}
}


protected void Button1_Click(object sender, EventArgs e)
{
Response.Redirect("menu.aspx");
}

public void Button2_Click1(object sender, EventArgs e)
{


tipo = tipo_prod.Text;
lin = ling.Text;
ser = serial.Text;
pos = posiz_arc.Text;

// SOSTRUISCE LA STRINGA DI RICERCA SQL
ricerca = "";
if (tipo != "")
{
ricerca = "tipo_prodotto like '%" + tipo + "%' and ";
}
if (lin != "")
{
ricerca = ricerca + "lingua like '%" + lin + "%' and ";
}
if (ser != "")
{
ricerca = ricerca + "numero_serie like '%" + ser + "%' and ";
}
if (pos != "")
{
ricerca = ricerca + "posizione_archivio ='" + pos + "' and ";
}
// stringa contenente i valori da ricercare nel datamase
ricerca = ricerca + " 1=1";

//stinga di connessione al database
connDB = Server.MapPath("msdn.mdb");

// crea la stringa di ricerca sulla tabella inventario_msdn
sql = "select * from Inventario_MSDN where " + ricerca + " order by tipo_prodotto,lingua, posizione_archivio";


da = new AccessDataSource(connDB, sql);

GridView1.DataSource = da;


GridView1.DataBind();

try
{
}
finally
{

}

}


public void GridView1_PageIndexChanging(object sender,GridViewPageEventArgs e)

{
// imposto la pagina che voglio visualizzare
GridView1.PageIndex = e.NewPageIndex;

GridView1.DataBind();

}

}


<!-- -->
<asp:GridView ID="GridView1" runat="server" Width="872px" Height="208px"
AutoGenerateColumns="False"
AllowSorting="True"
AllowPaging="True"
PageSize="2"
OnPageIndexChanging="GridView1_PageIndexChanging" OnSelectedIndexChanged="GridView1_SelectedIndexChanged"> <Columns>
<asp:BoundField DataField="Tipo_Prodotto" HeaderText="Tipo_Prodotto" SortExpression="Tipo_Prodotto" />
<asp:BoundField DataField="Lingua" HeaderText="Lingua" SortExpression="Lingua" />
<asp:BoundField DataField="Descrizione" HeaderText="Data Prodotto" SortExpression="Descrizione" />
<asp:BoundField DataField="Numero_Serie" HeaderText="Numero_Serie" SortExpression="Numero_Serie" />
<asp:BoundField DataField="Posizione_Archivio" HeaderText="Posizione_Archivio" SortExpression="Posizione_Archivio" />
</Columns>


</asp:GridView>
il GridView supporta il Paging solo se associato ad un SqlDataSource, in caso contrario devi gestire tutto a mano, ovvero creare una query che recuperi solo il seto desiderato di dati.

inoltre nel PageIndexChanging devi non solo richiamare il metodo DataBind ma nel tuo caso riassociare la fonte dati

ciao marco

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

http://nostromo.spaces.live.com/default.aspx
2 messaggi dal 17 settembre 2007
Grazie per l'aiuto, lo sospettavo. Non credi però che sia limitativo?
erio ha scritto:
Grazie per l'aiuto, lo sospettavo. Non credi però che sia limitativo?


secondo me no, perche la paginazione è giusto farla da un altra parte sicuramente lato server.

i controlli meno logica implementano è meglio è

ciao marco

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

http://nostromo.spaces.live.com/default.aspx

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.