2016-02-18 112 views
0

我有這種情況:使用按鈕就像一個FileUpload在ASP.NET

enter image description here

兩個普通的ASP.NET控件。 但我想隱藏FileUpload控件,並保持唯一的按鈕。

東西這麼瑣碎導致我比expected.This更多的問題是我實現:

ASPX

<asp:FileUpload ID="FileUpload1" runat="server" /> 

<asp:Button ID="UploadButton" runat="server" Text="Carica Documento" OnClientClick="showBrowseDialog();" /> 

<asp:Button runat="server" ID="hideButton" Text="" style="display:none;" OnClick="UploadButton_Click" /> 

<script type="text/javascript" language="javascript"> 
    function showBrowseDialog() { 
     var fileuploadctrl = document.getElementById('<%= FileUpload1.ClientID %>'); 
     fileuploadctrl.click(); 

     var btn = document.getElementById('<%= hideButton.ClientID %>'); 
     btn.click(); 
    } 
</script> 

C#

protected void UploadButton_Click(object sender, EventArgs e) 
{ 
    if (FileUpload1.HasFile) 
    { 
     try 
     { 
      string address = Server.MapPath("") + "\\" + FileUpload1.FileName; 
      FileUpload1.SaveAs(address); 
      //... 
     } 
     catch (Exception) { } 
    } 

回答

2

試試這個layoutt

<asp:FileUpload ID="FileUpload1" Style="display: none" runat="server" onchange="upload()" /> 
<input type="button" value="Carica Documento" onclick="showBrowseDialog()"/> 

<asp:Button runat="server" ID="hideButton" Text="" Style="display: none;" OnClick="UploadButton_Click" /> 

<script type="text/javascript" language="javascript"> 
    function showBrowseDialog() { 
     var fileuploadctrl = document.getElementById('<%= FileUpload1.ClientID %>'); 
     fileuploadctrl.click(); 
    } 

    function upload() { 
     var btn = document.getElementById('<%= hideButton.ClientID %>'); 
     btn.click(); 
    } 
</script> 
+0

Thx!這工作!只是,我變得瘋了,因爲一開始我沒有用更改 ...但是一旦它完成了它的工作!我想知道爲什麼asp:Button沒有解決......無論如何,再次感謝! – Gioce90

+0

因爲這是服務器端控制,它使每個事件回發,我認爲另一個解決方案它把控制器在updatepanel =) –

0

不知道如果我已經明白這一點。 你想只顯示一個按鈕而不是兩個打開文件對話框的按鈕,並且在選擇一個文件後,執行上傳作業?

+0

沒錯。我只想顯示按鈕。如果用戶點擊它,可以在對話框中選擇一個文件並上傳該文件。 – Gioce90

0

嘗試這個.......

ASPX:

<asp:FileUpload ID="FileUpload1" runat="server"/> 
<asp:Button ID="UploadButton" runat="server" Text="Carica Documento" OnClientClick="return showBrowseDialog();" onclick="UploadButton_Click"/> 

<script type="text/javascript" language="javascript"> 
    function showBrowseDialog() 
    { 
     document.getElementById('<%=FileUpload1.ClientID%>').click();  
    } 
    </script> 

C#:

protected void Page_Load(object sender, EventArgs e) 
     { 
      FileUpload1.Attributes["style"] = "display:none"; 
     } 

     protected void UploadButton_Click(object sender, EventArgs e) 
     {   
      if (FileUpload1.HasFile) 
      { 
       try 
       { 
        string address = Server.MapPath("~/") + FileUpload1.FileName; 
        FileUpload1.PostedFile.SaveAs(address); 
        //... 
       } 
       catch (Exception) { } 
      } 
     } 
相關問題