2011-01-26 11 views
5

Anche se domande in qualche modo simili a questo sono state richieste per un certo numero di volte, ma la domanda è ancora irrisolta. Ecco la domanda: Ho un GridView contenuto in un contenitore di schede AJAX che si trova all'interno di uno UpdatePanel. Gridview funziona in modo eccellente e i suoi metodi corrispondenti sono attivati ​​in modo preciso, ma quando abilito paging (ad esempio) dopo aver fatto clic su pagina 2, lo GridView si nasconde. ecco il mio PageIndexChanging() Metodo:ASP.net Gridview Il paging non funziona all'interno di UpdatePanel

protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e) 
{ 
    GridView1.PageIndex = e.NewPageIndex;   
    GridView1.DataBind(); 
    UpdatePanel2.Update();   
} 

Perché paging provoca GridView smettere di funzionare correttamente? Cosa posso fare?

+0

http://forums.asp.net/t/1091963.aspx - Possibile soluzione. –

risposta

6

La soluzione è che si dovrebbe riempire il set di dati che viene utilizzato per popolare GridView, ogni volta che la vostra pagina indice è cambiato. In questo modo, è possibile garantire che in ogni postback separato che è stato attivato dal numero di pagina di gridview, i risultati verranno popolati.

3

ulteriori ricerche:

http://msdn.microsoft.com/en-us/library/cc295545.aspx

controlli che non sono compatibili con UpdatePanel controlla

I seguenti controlli ASP.NET non sono compatibili con gli aggiornamenti a pagina parziale, e sono quindi non progettato per funzionare all'interno di un controllo UpdatePanel:

  • Controlli GridView e DetailsView quando la proprietà EnableSortingAndPagingCallbacks è impostata su true. Il valore predefinito è falso.
3

Ho appena provato questo codice di cui sopra. Ho avuto lo stesso problema e ora sta funzionando bene.

protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e) 
{ 
    GridView1.PageIndex = e.NewPageIndex;   
    GridView1.DataBind(); 
    // UpdatePanel2.Update(); <-- Remove this line from your code. 
} 

Ho GridView nel pannello di aggiornamento. Hai scritto anche il tuo evento PageIndexChanging nel tuo file .aspx?

Spero che questo aiuti.

-1

Per farlo, è necessario reimpostare l'origine dati nell'evento di modifica dell'indice della pagina. Le prestazioni saranno inferiori, ma è così che puoi farlo funzionare.

protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e) 
{ 
    GridView1.DataSource = ;//Set again the datasource 
    GridView1.PageIndex = e.NewPageIndex; 
    GridView1.DataBind(); 
    UpdatePanel2.Update(); 
} 
+0

@Farshid ha già risposto a questo. – AsifAli72090

Problemi correlati