2011-06-14 77 views
0

當按鈕點擊正在處理時,是否有任何方式顯示顯示「正在上傳..」的標籤?如何在按鈕點擊處理過程中顯示標籤?

我這樣做這樣

protected void btnUpload_Click(object sender, EventArgs e) 
{ 
    lblOutput.Text="uploading.."; 

    HttpPostedFile postedFile = FileUpload1.PostedFile; 
    string ClientFileName, ServerFileName; 

    if ((FileUpload1.HasFile && FileUpload1.PostedFile != null) || txtUrl.Text!="") 
    { 
     try 
     { 
      HttpPostedFile myFile = FileUpload1.PostedFile; 

      if (fileType == "Image") 
      { 
       if (fileExt == ".jpg" || fileExt == ".gif" || fileExt == ".png" || 
        fileExt == ".bmp" || fileExt == ".tif") 
       { 
        ServerFileName = System.IO.Path.Combine(ServerSavePathI, ClientFileName); 
        string serverPath = Server.MapPath(ServerFileName); 
        FileUpload1.SaveAs(serverPath); 
        dbInsert(fileType, fileName, fileExt, 
          filePath+fileType+"/"+fileName.Replace(" ",string.Empty)+fileExt, 
          url); 
       } 
      } 
     } 
    } 
} 

但它表明我的文件已經被上傳後。

我做錯了什麼,或者有什麼其他的方式來做到這一點?

+0

唉.......代碼格式? – Aamir 2011-06-14 06:55:13

+1

lblOutput.visible = false?只是猜測不閱讀整個事情因爲它就像上面所述(難以閱讀) – Ruben 2011-06-14 06:56:33

+2

不,用你目前的邏輯是不可能的。你最好的選擇是使用AJAX而不是PostBack,然後這樣的事情變得很微不足道。 – 2011-06-14 06:57:17

回答

1
<script type="text/javascript"> 
     function showMessage() { 
      document.getElementById("<%= lblOutput.ClientID %>").innerHTML = "uploading.."; 
     } 
    </script> 

<asp:FileUpload runat="server" ID="FileUpload1" /> 
    <asp:Button runat="server" ID="btnUpload" Text="Upload" OnClick="btnUpload_Click" OnClientClick="showMessage()" /> 
    <asp:Label runat="server" ID="lblOutput" /> 
+0

顯示lblOutput的標記,包括它父母 – 2011-06-14 07:28:37

+0

它完成與IE.it是與Firefox的問題。 – 2011-06-14 07:29:25

+0

用innerHTML替換innerText – 2011-06-14 07:37:38

0

顯示拉布勒文本的優先級高於上傳thread.You可以通過使用解決這個另一個線程來處理文本變化event.Hope有助於降低。