簡體   English   中英

啟用AsyncFileUpload上傳按鈕完成

[英]Enabling a button on AsyncFileUpload upload complete

這就是場景:我有一個屏幕,上面有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>

BulkInsert.aspx.cs

protected void Page_Load(object sender, EventArgs e)
{
    if (!Page.IsPostBack)
    {
        this.btnImport.Enabled = false;

    }
  }


 protected void AsyncUpload_UploadedComplete(object sender,    AjaxControlToolkit.AsyncFileUploadEventArgs e)
 {
    this.btnImport.Enabled = true;
 }

我建議只使用javascript來顯示按鈕,你不會在處理中使用它。 您可以使用已包含在設計中的AjaxFileUpload OnClientUploadComplete="UploadComplete" ,它將完美地實現您的目標。

在標記中創建這樣的函數:

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

   }
</script>

然后修改您的按鈕以使style="display:none"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM