3

<asp:FileUpload>およびコントロールを使用してファイルをアップロードしています<asp:button>が、ポストバックなしでアップロードしたいと考えています。ボタンをクリックすると、次のコードが実行されます。

protected void btnUpload_Click(object sender, EventArgs e)
{
    string strFileName = Path.GetFileName(FileUpload1.FileName);  //fileupload1 is the <asp:fileupload ID
    FileUpload1.SaveAs(Server.MapPath("~/UploadFile/" + strFileName + ""));
    imgUpload.ImageUrl = "../UploadFile/" + strFileName + "";  //imgupload is the <img ID on which I am showing the image after upload
    imgUpload.Visible = true;
}

ファイルをアップロードした後、プロジェクト ソリューションの指定したフォルダーから保存された画像を表示していますが、アップロード ボタンをクリックするとページ全体が読み込まれ、アップロード ボタンをクリックしたときにポストバックしたくありません。

4

6 に答える 6

3
just add the script

    <script language="javascript">
        function Change(obj) {
             __doPostBack("<%= btnUpload.ClientID %>", "");
        }

      </script>


Call the script in your button click event like this 
<pre>
onchange="Change(this);"
</pre>   

Your image control added in the update panel with contentTemplate 

    <asp:FileUpload ID="imgFileUploader" runat="server"   />
             <asp:Button ID="btnUpload" runat="server"  
         Text="Upload" onclick="btnUpload_Click" onchange="Change(this);" />
      <br />
        <br />
     <asp:ScriptManager ID="ScriptManager1" runat="server">
     </asp:ScriptManager>
  &nbsp;<asp:UpdatePanel ID="UpdatePanel1" runat="server">
            <ContentTemplate>    
               <img id="imgOrginal" runat="server" style="height: 200px; width: 200px;" />
              </ContentTemplate>
      </asp:UpdatePanel>

詳細については

于 2013-03-08T04:57:09.160 に答える
1

ASP.Net ファイル アップローダーを使用している場合、それは不可能です。この目的のために Ajax ファイル アップローダーを使用できます。

于 2012-12-27T05:52:04.207 に答える
1

部分的なリクエストによるファイルのアップロードについて質問していると思います。ASP.NET ファイル アップロード コントロールを使用することはできません。更新パネル内にラップされていても機能しません。機能させるには同期トリガーが必要です。つまり、完全なポストバックを行います。

ASP.NET AJAX を使用している場合は、asyncfileload コントロールと新しく追加された「Ajax ファイル アップロード」コントロールを確認してください。これらのコントロールは、Ajax コントロール ツール キットに含まれています。それぞれに制限があるため、ドキュメントを参照してください。

それらがニーズに合わない場合は、ニート アップロードなどのオープン ソースの Ajax ファイル アップロード コントロールを試してください。

于 2012-12-27T05:49:46.780 に答える
1

ポストバックなしで画像をアップロードする最良の方法は、Asp.net Ajax で AsyncFileUpload コントロールを試すことができます。良い例がここにあります:-

http://www.aspsnippets.com/Articles/Using-ASP.Net-AJAX-Control-Toolkits-AsyncFileUpload-Control.aspx

ありがとうございました

于 2012-12-27T05:53:15.733 に答える
0

この目的のために ajax を使用する必要があります。インターネット上で利用可能な多くの例があります。グーグルで検索してください。

于 2014-02-20T07:35:09.487 に答える
0

単純な ASP.NET WebForms を使用してこれを行うことはできません。

ページのライフサイクル と呼ばれるものについて調査します。あなたが含めたようなメソッドの背後にあるコードは、ポストバックまたはサーバー側のアクションの一部としてのみ実行できます。

ポストバックなしでクライアントとサーバーのやり取りが必要な場合は、javascript を使用する必要があります。ASP.NET と一緒に JavaScript を使用できます。.NET フレームワークには Microsoft による「AJAX」の実装があると思います。

于 2012-12-27T05:52:54.030 に答える