Не удается получить доступ к элементу управления .NET из AsyncFIleUpload.OnUploadCompleted кода позади - PullRequest
0 голосов
/ 06 июня 2011

Я использую AJAX Toolkit AsyncFileUpload следующим образом ...

        <p>
            <asp:Label runat="server" Text="Choose a webstock file to upload..." ID="uploadResult" />
            <asp:Button ID="btnImport" Text="Import Data to Website &raquo;" OnClick="importData" runat="server" Visible="false" />
        </p>
        <asp:AsyncFileUpload  ID="afuStockImport"  runat="server" 
                OnUploadedComplete="uploadComplete"               
                OnClientUploadError="uploadError" 
                OnClientUploadStarted="StartUpload" 
                OnClientUploadComplete="UploadComplete" 
                Width="400px" 
                UploaderStyle="modern"   
                UploadingBackColor="#b9b9b9" 
                CompleteBackColor="#00FF00"
                ErrorBackColor="#FF0000"
                ThrobberID="myThrobber" 
                ClientIDMode="AutoID"/>
        &nbsp;       
        <asp:Label runat="server" ID="myThrobber" style="display:none;" >  
            <img align="absmiddle" alt="" src="adminimages/uploading.gif" />  
        </asp:Label>  

Я пытаюсь получить доступ к элементу управления btnImport, чтобы сделать его видимым при успешной загрузке, но доступ к нему из процедуры uploadComplete в приведенном ниже коде ничего не делает ...

        protected void uploadComplete(object sender, AjaxControlToolkit.AsyncFileUploadEventArgs e)
    {
        try
        {
            //upload file to web file system
            System.Threading.Thread.Sleep(5000);
            if (afuStockImport.HasFile)
            {
                string strPath = Server.MapPath("~/admin/stockfiles/") + Path.GetFileName(afuStockImport.PostedFile.FileName);
                afuStockImport.SaveAs(strPath);
                btnImport.Visible = true;
            }
        }
        catch (Exception ulEx)
        {
            //Error message
        }
    }

Любая помощь будет оценена.

Ура, Ben

1 Ответ

0 голосов
/ 06 июня 2011

На самом деле вы можете получить доступ к этой кнопке, но ваши изменения не применяются, поскольку метод uploadComplete выполняется асинхронно.по моему мнению, лучше скрыть btnImport, используя style = "display: none;", обработать событие OnClientUploadComplete на стороне клиента кнопки AsyncFileUpload и показать после успешной загрузки файла.

...