0

私が持っているのは、ユーザーが .CSV をアップロードできるようにする ASP.NET 2.0 Web アプリケーションです。

html 入力タイプは送信です。

onserverclick メソッドが実行される前に、入力の下にある UpdatePanel を更新して、少し「処理中」の .gif を表示する方法があるかどうかを知りたいです。

そのイベントの開始時に別のイベントへの参照を配置しようとしましたが、他の方法も試しましたが、うまくいきません。私が理解していることから、UpdatePanel が更新される前にメソッドを終了する必要があります。

ここに皆さんのためのコードがあります

          <div class=" content-div">
              <input type="file" id="File1" name="File1" runat="server" />
              Select file Type:
              <asp:DropDownList ID="ddlfileupload" runat="server">
                 <asp:ListItem>CSV</asp:ListItem>
              </asp:DropDownList>
           </div>

           <div class=" content-div">

              <input type="submit" id="Submit1" value="Upload File" runat="server" onserverclick="Submit1_ServerClick"
                 style="border-top-style: groove; border-right-style: groove; border-left-style: groove;
                 border-bottom-style: groove" />

              <asp:Label ID="Label6" runat="server" BorderColor="White" BorderStyle="None" Font-Bold="True"
                 Visible="False"></asp:Label>

                 <asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Always">
                    <ContentTemplate>
                        <asp:PlaceHolder ID="PlaceHolder1" runat="server" />
                    </ContentTemplate>
                 </asp:UpdatePanel>

コードの背後にあるイベント:

protected void Submit1_ServerClick(object sender, EventArgs e)
    {
        AddProcessGif();
        // Logic from submit button here that uploads .csv
    }

AddProcessGif() は、私の .gif などをプログラムで追加するメソッドです。そして、それは機能します。私はそれが起動するのを見ましたが、アップロードが終了した後でのみ、目的を無効にします。

私はここに非常によく書かれたアプリケーションを持っていません.ASP.NETにかなり慣れていないので、プログレスバーなどを効果的に作成する方法がわかりません.

アドバイスをいただければ幸いです

4

1 に答える 1

1

javascript から ac# サーバー側メソッドを呼び出すことができます。aspx ページに scriptmanaget を追加し、EnablePageMethods を true に設定する必要があります。

       <asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="true"></asp:ScriptManager>

また、C# メソッドは [WebMethod] のようにする必要があります

[WebMethod]
public static string DoSomething(string str1, string str2)
{
    string result = "This is concatenation of " + str1 + " and " + str2 + "'.";
    return result;
}

次に、aspxページにjavascript関数を追加して、C#サーバー側のDoSomethingメソッドを呼び出します

<head runat="server">
<title></title>
<script type="text/javascript">
    function DoSomthing() {
        var str1 = document.getElementById('<%=txtstr1.ClientID %>').value;
        var str2 = document.getElementById('<%=txtstr2.ClientID %>').value;
       //Here we call server side methode
        PageMethods.DoSomeThing(str1, str2, onSucess, onError); 
        function onSucess(result) {
            alert(result);
        }

        function onError(result) {
            alert('Something wrong.');
        }
    }
</script>

それが役に立てば幸い

于 2013-11-14T00:03:28.193 に答える