2010-07-29 8 views
0

J'ai comme deux gridviews sur la page Web se chevauchent l'un sur l'autre J'ai un bouton qui bascule ces gridviews.when la page charge gridview1 charges et gridview2 est caché et quand je clique sur le bouton gridview2 apparaît et gridview1 cache (en utilisant javascript) les deux gridviews ont pagination activé.le problème est quand je veux aller à la page2 de gridview2 la page est rechargée et gridview2 disparaît et gridview1 apparaît.Je suis une nouvelle abeille à asp.net et je veux savoir est il un moyen d'arrêter GridView1 de recharger quand je veux voir page2 de gridview2Asp.net Gridview

Cordialement, Ravi

Répondre

0

Ce n'est pas la meilleure solution, mais le plus rapide et plus facile, mettre en gridView2 un UpdatePanel:

<form id="Form1" runat="server"> 
    <asp:ScriptManager ID="ScriptManager1" runat="server"> 
    </asp:ScriptManager> 
    <asp:GridView ID="GridView1" runat="server"> 
    </asp:GridView> 
    <asp:UpdatePanel ID="UpdatePanel1" runat="server"> 
     <ContentTemplate> 
     <asp:GridView ID="GridView2" runat="server"> 
     </asp:GridView> 
     </ContentTemplate> 
    </asp:UpdatePanel> 
</form> 
+0

Ca va faire une publication partielle ... mais ça va arrêter gridview1 de recharger ... Je vais l'essayer demain. Merci pour la réponse rapide – SRK

+0

...... Une chance? –

0

En fait, toute la page est rechargée parce que les gridviews ne mantenir pas état entre postbacks.
C'est ainsi que fonctionnent les contrôles asp.net.

Si vous utilisez javascript pour afficher l'un ou l'autre gridview, vous devez d'abord enregistrer l'une des grilles que vous avez actuellement visibles.

Vous pouvez l'enregistrer sur le Viewstate

Viewstate["visibleGrid"] = visibleGrid1.Enabled ? 1 : 2 

Ensuite, dans votre Page_Load vous devez vérifier dont sur est visible et mettez-le vous-même manuellement

protected void Page_Load(object sender, EventArgs e) 
{ 
     gridview1.Visible = (int)Viewstate["visibleGrid"] == 1; 
     gridview2.Visible = (int)Viewstate["visibleGrid"] == 2; 
} 

enfin, vous devez avoir un PageIndexChanging pour gridview1 et 2 étant donné que la page change, la grille doit être à nouveau délimitée

protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e) 
{ 
    GridView1.PageIndex = e.NewPageIndex; 
    GridView1.Datasource = ... 
    GridView1.Databind(); 
} 

protected void GridView2_PageIndexChanging(object sender, GridViewPageEventArgs e) 
{ 
    GridView2.PageIndex = e.NewPageIndex; 
    GridView2.Datasource = ... 
    GridView2.Databind(); 
}