GridView à l'intérieur de UpdatePanel pas rafraîchissantes sans appel de code derrière

Je suis nouvelle ASP.Net et je suis confus quant à la façon d'un contrôle GridView fonctionne à l'intérieur d'un UpdatePanel.

J'ai lu la documentation ici qui stipule que "Par défaut, toute publication de contrôle à l'intérieur d'un contrôle UpdatePanel provoque une publication asynchrone et actualise le contenu du panneau." pourtant, lorsque je place une GridView et un Bouton de contrôle à l'intérieur de l'élément, à moins que le bouton a défini un événement OnClick pour faire grid1.DataBind();, la grille ne permet PAS d'actualiser ses données. J'ai également essayé en spécifiant une AsyncPostBackTrigger sur l'UpdatePanel pour le Bouton, mais encore une fois j'ai eu le même comportement. Maintenant, j'ai remarqué que l'UpdatePanel NE actualiser lorsque j'appuie sur un Bouton, sans événement OnClick, cependant le contrôle GridView à l'intérieur, il ne le fait pas. S'il vous plaît pouvez-vous nous éclairer sur ce point? Dois-je toujours avoir cet appel à du code derrière explicitement l'actualiser?

Ma chaîne de connexion dans le Web.Config

    <connectionStrings>
        <add name="myConnectionString"
             connectionString="Data Source=XXXXX;Initial Catalog=XXXX;Persist Security Info=True;User ID=XXXXX;Password=XXXXX"
             providerName="System.Data.SqlClient" />
    </connectionStrings>

Mon Défaut.aspx

 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="EmptyWebApp.Default" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server"> <title></title> </head>
<body>
<form id="form1" runat="server">
<div>
<asp:ScriptManager ID="ScriptManager" runat="server" EnablePartialRendering="true" />
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:GridView ID="grid1" runat="server" DataSourceID="SQLDevelopment" AutoGenerateColumns="False">
<Columns>
<asp:BoundField DataField="UserID" HeaderText="UserID" SortExpression="UserID" />
<asp:BoundField DataField="Date" HeaderText="Date" SortExpression="Date" />
</Columns>
</asp:GridView>
<asp:SqlDataSource ID="SQLDevelopment" runat="server"
ConnectionString="<%$ ConnectionStrings:myConnectionString %>" 
SelectCommand="SELECT * FROM [TestTableA]"></asp:SqlDataSource>
<%=DateTime.Now.ToString()%> <br />
<asp:Button ID="btnRefresh" runat="server" Text="Refresh without C# event"/>
<asp:Button ID="btnRefresh1" runat="server" Text="Refresh with C# event" OnClick="btnRefresh1_Click"/>
</ContentTemplate>
</asp:UpdatePanel>
</div>
</form></body><html>

Mon Code derrière pour btnRefresh1

    protected void btnRefresh1_Click(object sender, EventArgs e)
{
grid1.DataBind();
}

MERCI

essayez UpdatePanel1.Mise à jour(); dans btnRefresh1_Click() après la liaison de votre gridview, depuis votre updatepanel UpdateMode est "Conditionnel".
Ashwini, ma question ne concerne PAS l'aide de code-behind de l'actualisation de la Grille dans l'UpdatePanel; je n'ai pas de problème de l'actualisation de la grille avec le code derrière, c'est à dire l'appel de sa méthode DataBind. Mais merci quand même.

OriginalL'auteur leoinlios | 2012-11-30