0

マスター ページ フォーム タグ:

    <form runat="server" enctype="multipart/form-data" method="post">

ファイルアップロード.aspx

 <asp:UpdatePanel runat="server" ID="upnlFileUpload">     
  <ContentTemplate> 
  <asp:Button ID="Save" runat="server" Text="Save" 
        style="margin-left: 0px" Width="350px" onclick="Save_Click" />
    <ajaxToolkit:AsyncFileUpload
        ID="AsyncFileUpload1" runat="server" 
        onuploadedcomplete="AsyncFileUpload1_UploadedComplete" />
  </ContentTemplate>
  </asp:UpdatePanel>    

FileUpload.aspx.cs

protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
           btnSave.Enabled = false;
        }
    }

protected void AsyncFileUpload1_UploadedComplete(object sender, AjaxControlToolkit.AsyncFileUploadEventArgs e)
    {
        btnSave.Enabled = true;
    }

ファイルをアップロードすると、UploadedComplete が実際に起動されます (一時的な場所にファイルを保存してテストしました) が、「保存」ボタンが有効になりません。行にヒットできるブレークポイントでさえ:

btnSave.Enabled = true;

このコードの何が問題なのですか?!

4

1 に答える 1

1

少し調整する必要があります。

ボタンを無効にするために必要なことは次のとおりです。

あなた<head>のタグで:

<script type = "text/javascript">
        function ClientUploadComplete(sender, e) {
            var btnSave = document.getElementById("<%=btnSave.ClientID %>");
            btnSave.disabled = true;
            btnSave.value = "Save";
        }
</script>

あなたの<body>タグで:

最初に追加<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>してから:

 <asp:UpdatePanel runat="server" ID="upnlFileUpload">     
  <ContentTemplate> 
   <asp:AsyncFileUpload ID = "AsyncFileUpload1" runat = "server" OnClientUploadStarted = "" OnClientUploadComplete = "ClientUploadComplete" />
    <asp:Button ID="btnSave" runat="server" Text="Save" />
  </ContentTemplate>
  </asp:UpdatePanel>    
于 2012-04-05T13:18:53.033 に答える