2013-08-17 81 views
1

你好,我隱藏FileUpload控件,textBox,我想寫的網址adrres或!文件路徑到某個文件,以及用於調用FileUpload的按鈕。我的問題是,我需要在用戶檢查fileupload控制某個文件並關閉彈出窗口後立即需要填寫文件的文件路徑。 我知道如何顯示文件路徑,但我需要自動執行併爲我陷阱。 這是我走到這一步,如何通過FileUpload控件的文件路徑填充TexBox

<div class="ViewContent"> 
    <asp:FileUpload ID="FileUpload2" runat="server" Width="317px" style="display: none"/> 
    <input id="btnFileUpload" type="button" value="Add" runat="server" style="width: 70px" /> 
    <asp:TextBox ID="TextBox2" runat="server" Width="310px"/> 
</div> 

 

protected void Page_Load(object sender, EventArgs e) 
{ 
    btnFileUpload.Attributes.Add(
    "onclick", 
    "document.getElementById('" + FileUpload2.ClientID + "').click();"); 
} 

所以答案很簡單:我應該在哪裏把我的填充文本框校驗碼?像這樣

if (FileUpload2.PostedFile != null) 
{ 
    TextBox2.Text = System.IO.Path.GetFullPath(FileUpload2.PostedFile.FileName); 
} 

回答

1

該腳本將做的工作:

<script type="text/javascript"> 
     $(document).ready(function() { 

      $(document).on('change', '#<%= FileUpload2.ClientID%>', function (e) { 
      $('#<%= TextBox2.ClientID%>').val(e.target.files[0].name); 
     }); 

      $('#<%=btnFileUpload.ClientID%>').click(function() { 
       $('#<%= FileUpload2.ClientID%>').trigger('click');     
      }); 

    }); 
</script> 

將jQuery添加引用如下圖所示,並刪除代碼形式的Page_Load()。

<head runat="server"> 
    <script src="Scripts/jquery-1.8.2.js"></script> 

甚至:

<head runat="server"> 
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script> 

和你的Page_Load():

protected void Page_Load(object sender, EventArgs e) 
{ 
    //btnFileUpload.Attributes.Add(
    //"onclick", 
    //"document.getElementById('" + FileUpload2.ClientID + "').click();"); 
} 
+0

這個函數被稱爲automaticaly?添加引用是類似headcontent中的東西嗎? 我嘗試過,但沒有任何反應 –

+0

因爲可能jQuery沒有附加。我已更新我的答案以顯示如何附加它。 – afzalulh

+0

謝謝你的耐心。所以現在它的工作/但我不知道如何> D /和一個小問題,在文本框中我得到了文件的名稱。我能否獲得完整路線? –

0

當你想要得到的文件名瞬間,你應該使用JavaScript這樣的:

var fu1 = document.getElementById("FileUpload1"); 
alert("You selected " + fu1.value); 

讓我知道如果別的。

+0

並在那裏我應該調用這個函數?當我需要用戶從FileUpload控件檢查文件後立即填充我的TextBox。因爲我可以在純csharp中獲得filepath,但是我需要它在FileUpload之後關閉彈出窗口 –

+0

例如,我可以在FileUpload上調用JavaScript,它可以正常工作,如onchange =「alert('您選擇了文件:'+ this.value)」,但是我需要這個值保存在代碼=後面。你知道我該怎麼做? –

+0

document.getElementById(「txtBox1」)。value = fu1.value; – donstack

相關問題