1

您好,我得到了隐藏的 FileUpload 控件,文本框,我想在其中写 url adrres 或!某个文件的文件路径,以及调用 FileUpload 的按钮。我的问题是,在用户签入文件上传控制某些文件并关闭弹出窗口后,我需要立即用该文件的文件路径填充 TextBox。我知道如何显示文件路径,但我需要自动执行它并且为我设置陷阱。这是我到目前为止得到的

<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();");  
}

所以答案很简单:我应该把我的检查代码放在哪里来填充 TextBox?像这样的东西

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

2 回答 2

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();");  
}
于 2013-08-17T15:54:40.293 回答
0

当您想立即获取文件名时,您应该使用类似这样的 javascript:

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

让我知道是否还有其他事情。

于 2013-08-17T13:01:04.903 回答