GridView la PAGINATION à l'intérieur de UpdatePanel ne fonctionne pas pour le deuxième changement de page, pourquoi?

J'ai deux updatepanels dont l'un d'eux contient un gridview. Le problème est que la Pagination ne fonctionne correctement que pour la première fois.

Voici le balisage:

<asp:UpdatePanel ID="upAnswers" runat="server" UpdateMode="Conditional" ChildrenAsTriggers="true">
<ContentTemplate>
<asp:GridView ID="gvAnswers" runat="server" CssClass="gv" Width="100%" ShowHeader="false" AllowPaging="True" PageSize="2" EnableSortingAndPagingCallbacks="true" OnPageIndexChanging="gvAnswers_PageIndexChanging" AutoGenerateColumns="False" AlternatingRowStyle-BackColor="#eee">
<Columns>
<asp:TemplateField HeaderText="Questions" ShowHeader="False">
<ItemTemplate>
<asp:Label ID="lblQuestions" onclick=<%# Eval("FaqID", "$('.lblAnswers_{0}').toggle('fast')") %> CssClass="block" runat="server" Text='<%# Eval("Title") %>'></asp:Label>
<asp:Panel ID="pnlS1" runat="server" CssClass='<%# Eval("FaqID", "lblAnswers_{0}") %>' style="display: none;">
<asp:Label ID="Label1" runat="server" Text='<%# Eval("Question") %>' CssClass="block bold"></asp:Label>
<asp:Label ID="lblAnswers" runat="server" Text='<%# Eval("Answer") %>'></asp:Label>
</asp:Panel>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</ContentTemplate>
</asp:UpdatePanel>
<asp:UpdateProgress ID="upgAnswers" runat="server" AssociatedUpdatePanelID="upAnswers" DisplayAfter="300">
<ProgressTemplate>
<div id="uiBlock" class="uiBlock">
</div>
</ProgressTemplate>
</asp:UpdateProgress>

et le code-behind:

protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
GetAnsweredPublicFAQs();
}
}
protected void GetAnsweredPublicFAQs()
{
DataSet ds = cFAQs.getAnsweredPublicFAQs();
gvAnswers.DataSource = ds;
gvAnswers.DataBind();
}
protected void gvAnswers_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
gvAnswers.PageIndex = e.NewPageIndex;
GetAnsweredPublicFAQs();
gvAnswers.DataBind();
upAnswers.Update();
}

Comme ref, j'utilise ASP.NET 4.0 C#.

Tout type d'aide serait très appréciée.

Ce qui concerne,
Kardo

  • avez-vous essayé d'utiliser UpdateMode="Toujours"? en outre, mettre ChildrenAsTriggers, sans mettre Trigges est inutile, parce que l'UpdatePanel avec UpdateMode="Conditionnel" sera mis à jour chaque fois qu'un des enfants de contrôle de fait de la publication.
  • Ce qui arrive pour la deuxième fois? Tout ce que vous avez dit, c'est que la pagination ne fonctionne correctement que de la première fois.
  • la deuxième fois, rien ne se passe.
  • lorsque j'essaie UpdateMode="Toujours", ça ne fonctionne pas, même pour la première fois, sans aucune erreur.
  • Dans un deuxième temps, frappez-vous la PageIndexChanging événement? Quelle est la valeur de e.NewPageIndex à ce point?
  • elle atteint toujours le PageIndexChanging événement et la valeur de l'e.NewPageIndex est comme prévu (concernant le n ° de page je me suis caché, la valeur est correcte). Et le plus important, tout fonctionne très bien sans UpdatePanel.

InformationsquelleAutor Kardo | 2013-09-20