2011-06-14 47 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有助于降低。