Vorrei chiedere un chiarimento sui postback asincroni (anche un link su cui possa trovare tale chiarimento). In una pagina ho due UpdatePanel: uno contiene un bottone e un'etichetta, l'altro un GridView. Il gridview ha l'EnableViewState a False.
Il binding della griglia avviene al primo Load della pagina e non nei postback successivi. A logica, avrei pensato che un postback asincrono del pannello il bottone non provocasse la perdita della sorgente dati della griglia, invece ciò avviene. Inoltre mi sono accorta che più righe ci sono nella griglia più il postback è lento; ma la griglia non dovrebbe venir toccata, giusto? Dove sta l'errore nel mio ragionamento? Ecco qualche riga di codice per spiegarmi meglio.


codice:
<asp:ScriptManager ID="smrProva" runat="server"></asp:ScriptManager> <asp:UpdatePanel ID="uplBottone" runat="server">
<ContentTemplate> 
<asp:Button ID="btnProva" runat="server" Text="Conta righe" /> 
<asp:Label ID="lblProva" runat="server" Text="Prima dell'esecuzione"></asp:Label> </ContentTemplate> 
</asp:UpdatePanel> 
<asp:UpdatePanel ID="uplGriglia" runat="server"> 
<ContentTemplate> 
<asp:GridView ID="dgvProva" runat="server" EnableViewState="false"> 
<Columns> 
<asp:BoundField DataField="clmNome" /> 
<asp:BoundField DataField="clmCognome" /> 
<asp:BoundField DataField="clmCitta" /> </Columns> 
</asp:GridView> 
</ContentTemplate> 
</asp:UpdatePanel>
codice:
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Dim dt As DataTable

        If Not IsPostBack Then
            dt = New DataTable

            dt.Columns.Add("clmNome")
            dt.Columns.Add("clmCognome")
            dt.Columns.Add("clmCitta")

            dt.Rows.Add("Mario", "Rossi", "Milano")
            dt.Rows.Add("Giovanni", "Bianchi", "Roma")
            dt.Rows.Add("Giuseppe", "Verdi", "Firenze")

            Me.dgvProva.DataSource = dt
            Me.dgvProva.DataBind()
        End If
        
    End Sub

    Protected Sub btnProva_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnProva.Click
        Me.lblProva.Text = "Ora la griglia ha " & Me.dgvProva.Rows.Count & " righe"
    End Sub