Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/376.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在AsyncFileUpload上启用按钮上载完成_C#_Javascript_Asp.net_Visual Studio 2010 - Fatal编程技术网

C# 在AsyncFileUpload上启用按钮上载完成

C# 在AsyncFileUpload上启用按钮上载完成,c#,javascript,asp.net,visual-studio-2010,C#,Javascript,Asp.net,Visual Studio 2010,这是一个场景:我有一个屏幕,上面有一个AsyncFileUpload和一个按钮。现在的问题是,如果用户在文件上传完成之前单击按钮,就会弹出一个错误,因此我想要实现的是在页面加载时禁用按钮,并且一旦文件上传完成,就必须使按钮再次可见。现在我已经在网络上讨论了一些问题和解决方案,我能理解的是,按钮是在服务器端处理的,所以我不能使用javascript来实现这一点。因此,当我在屏幕后面的代码中执行此操作时,它会成功禁用按钮,但在文件上载完成后不会成功启用。我所做的假设是因为没有发生回发,并且按钮似乎没

这是一个场景:我有一个屏幕,上面有一个AsyncFileUpload和一个按钮。现在的问题是,如果用户在文件上传完成之前单击按钮,就会弹出一个错误,因此我想要实现的是在页面加载时禁用按钮,并且一旦文件上传完成,就必须使按钮再次可见。现在我已经在网络上讨论了一些问题和解决方案,我能理解的是,按钮是在服务器端处理的,所以我不能使用javascript来实现这一点。因此,当我在屏幕后面的代码中执行此操作时,它会成功禁用按钮,但在文件上载完成后不会成功启用。我所做的假设是因为没有发生回发,并且按钮似乎没有被启用,因为没有发生屏幕刷新

文件上传完成后,我如何通过该按钮,以及如何启用该按钮

以下是我到目前为止所掌握的内容,虽然代码不多,但它仍然在这里: BulkInsert.aspx

  <%@ Page AspCompat="true" Title="MainPage" MasterPageFile="~/MasterPage.master"       Language="C#"
AutoEventWireup="true" CodeFile="InventoryBulkInsert.aspx.cs" Inherits="content_inventory_InventoryBulkInsert" %>

  <%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="asp" %>

 <asp:Content ID="Content1" ContentPlaceHolderID="MainContent" runat="server">

<table border="0" class="tablebody" width="100%">
   <tr>
        <td class="title" colspan="2">
            Bulk insert
        </td>
    </tr>

    <tr>
        <td class="headercell" colspan="2">
            File Upload
        </td>
    </tr>




    <tr>
        <td class="style1">
            File
        </td>
        <td class="style2" style="height: 26px">
            <asp:AsyncFileUpload ID="AsyncUpload" runat="server" OnUploadedComplete="AsyncUpload_UploadedComplete"
                OnClientUploadComplete="UploadComplete" OnUploadedFileError="AsyncUpload_UploadedFileError"
                colspan="1" />
        </td>
    </tr>
    <tr>
        <td class="style1">
        </td>
        <td align="left">
            <asp:Button runat="server" ID="btnImport" Text="Import" BackColor="#990000" ForeColor="White"
                nowrap Width="214px" OnClick="btnImport_Click"  />
        </td>
    </tr>

我建议只在显示按钮时使用javascript,而不会在处理过程中使用它。您可以使用AjaxFileUpload
OnClientUploadComplete=“UploadComplete”
,它已经包含在您的设计中,可以完美地实现您的目标

在标记中创建如下函数:

   function UploadComplete(sender, args) {
       var control = document.getElementById("<%=btnImport.ClientID%>");
       control.style.display = "block";

   }
</script>
函数上传完成(发送方,参数){
var control=document.getElementById(“”);
control.style.display=“block”;
}

然后修改按钮,使其具有
style=“display:none”

该部分的功能是什么?control.style.display=“block”;这将使按钮可见:)非常欢迎:)您也可以使用control.style.display=“inline”;在相同位置显示按钮。
   function UploadComplete(sender, args) {
       var control = document.getElementById("<%=btnImport.ClientID%>");
       control.style.display = "block";

   }
</script>