Salut à tous,
 
J'ai créé un UserControl.
A l'intérieur j'y ai mis un updatepanel, un bouton et un objectdatasource.
Dans l'updatepanel j'ai mis un timer et une gridview.
Ce que j'aimerais que mon code fasse :
1-l'updatepanel rafraichit la gridview toutes les 2 secondes.
2-Lorsque le bouton est cliqué je voudrais qu'une tache asynchrone soit lancée pendant que la gridview continue de se rafraichir.
 
Voilà mon code :
| Code : 
 <%@ Control Language="VB" AutoEventWireup="false" CodeFile="ctrAM.ascx.vb"Inherits="App_Controls_ctrAM" %><style type="text/css">    `.hiddencol    {        display: none;     }`</style><asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager><asp:UpdatePanel ID="UpdatePanel1" runat="server"><contenttemplate><asp:Timer ID="Timer1" runat="server"  Interval="2000" OnTick="Timer1_Tick">    </asp:Timer>        <asp:GridView ID="ImportProgress" runat="server" AutoGenerateColumns="False"            Width="530px" Height="50px" CellPadding="3" Font-Size="X-Small"            Font-Names="Arial" BorderColor="White" PagerStyle-Mode="NumericPages"        DataSourceID="ObjectDataSource1">            <Columns>                <asp:BoundField DataField="TAPL_L" HeaderText="Process" ItemStyle-Width="200px">                </asp:BoundField>                <asp:BoundField DataField="TAPL_D" HeaderText="Description"  ItemStyle-Width="300">                </asp:BoundField>                <asp:BoundField DataField="TAPL_ExecutionOrder" HeaderText="Exec"  ItemStyle-Width="5px">                </asp:BoundField>                <asp:TemplateField HeaderText="Progress" ItemStyle-Width="25px">                    <ItemTemplate>                        <img src='<%# GetIconImagePath(container.dataItem("TAPS_S" )) %>' width=20 />                    </ItemTemplate>                </asp:TemplateField>                <asp:BoundField HeaderText="hdnProgress" DataField="TAPS_S" ItemStyle-CssClass="hiddencol" HeaderStyle-CssClass="hiddencol" >                </asp:BoundField>            </Columns>            <headerstyle font-bold="True" forecolor="White" backcolor="#D7B191">        </headerstyle>            <pagerstyle font-bold="True" horizontalalign="Right" forecolor="White" backcolor="#D7B191">        </pagerstyle>        </asp:GridView>        </contenttemplate></asp:UpdatePanel><asp:ObjectDataSource ID="ObjectDataSource1" runat="server" SelectMethod="Select"TypeName="clsTAPS"><SelectParameters>    <asp:Parameter Name="sSessionId" Type="String" DefaultValue="a11" /></SelectParameters>   </asp:ObjectDataSource><asp:Button ID="Button1" runat="server" Text="Button" autopostback="true" />
 | 
 
Et la partie VB :
 
| Code : 
 Imports System.DataImports System.Data.SqlClientImports System.Data.SqlTypesImports System.ThreadingImports System.GlobalizationPartial Class App_Controls_ctrAMInherits System.Web.UI.UserControlSub Page_Load(Sender As Object, E As EventArgs) Handles Me.Load    If Not Page.IsPostBack Then    Else        ImportProgress.DataBind()    End IfEnd SubFunction GetIconImagePath(ByVal strProgress As String) As String    Select Case Trim(strProgress)        Case "Unstarted"            Return "../../images/Imports/unstarted.png"    End SelectEnd FunctionFunction LoadDataValidations(ByVal sSessionId As String)    Dim oAsyncTask As New clsImportAsync()    oAsyncTask.sTAPS_SessionId = sSessionId    Dim asyncTask As New PageAsyncTask(AddressOf oAsyncTask.OnBegin, AddressOf oAsyncTask.OnEnd, AddressOf oAsyncTask.OnTimeout, "AsyncTask", True)    ' Register the asynchronous task.    Page.RegisterAsyncTask(asyncTask)    ' Execute the register asynchronous task.    Page.ExecuteRegisteredAsyncTasks()    ' Display the results of the export    ShowResults()End FunctionSub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs)    Label1.Text = "Panel refreshed at: " + DateTime.Now.ToLongTimeString()    Try        ImportProgress.DataBind()        Next    Catch ex As Exception        Label1.Text = "==" + ex.ToString    End TryEnd SubProtected Sub Button1_Click(sender As Object, e As System.EventArgs) Handles Button1.Click        LoadDataValidations(hndAPSessionID.Text)End SubEnd Class
 | 
 
Mon problème :
 
Dès que je clique sur le bouton la page freeze.
Comme si le timer était bloqué.
Tout reprend lorsque la tache asynchrone est terminée et alors la gridview se rafraichit.
J'ai essayé avec un second updatepanel (contenant le bouton), avec un timer javascript ça ne fonctionne jamais.
Que fais je de mal ?
Merci de votre aide.