ASP.NET(C#)を使用してサーバーに送信しているときに、クライアントで送信された電子メールの数を表示するにはどうすればよいですか?
だから私のシナリオを見てみましょう:
- UpdatePanel内にボタンがあります。
- このボタンは、私のユーザー(サーバーサイド)にいくつかの電子メールを送信する必要があります。
そのボタンをクリックすると、次のようなこともしたいと思います。
- 不透明度の低いモーダルdivを表示し、中央にラベルを付けます(そのラベルのテキストは「0」です)。
- メールの送信を開始します。
- そのラベルのテキストは、送信されたすべての電子メールを反映するように更新する必要があります(これはカウンターです)(0-> 1-> 2-> ...)
- メール送信の最後に、そのモーダルdivを非表示にします
そして私のコード:
ASPX:
<asp:UpdateProgress ID="UpdateProgress1" runat="server">
<ProgressTemplate>
<asp:Image ID="imgAjax" runat="server" ImageUrl="~/Images/ajax-loader.gif" />
</ProgressTemplate>
</asp:UpdateProgress>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<div id="RadbtnSendEmails_Container">
<telerik:RadButton ID="RadbtnSendEmails" runat="server" EnableEmbeddedSkins="False"
Skin="BlackByMe" Text="Send Mails" Width="150px" OnClick="RadbtnSendEmails_Click"
Font-Bold="True" Font-Names="Tahoma" ValidationGroup="A">
</telerik:RadButton>
</div>
</ContentTemplate>
</asp:UpdatePanel>
<div id="OffDiv">
</div>
<div id="CounterContainer">
<asp:Image ID="imgWhiteCircle" runat="server" ImageUrl="~/Images/WhiteCircle.png" />
<asp:Label ID="lblCounter" runat="server" Text="0" Font-Bold="True"
Font-Size="50px" ForeColor="#6600CC">
</asp:Label>
</div>
C
protected void RadbtnSendEmails_Click(object sender, EventArgs e) {
ScriptManager.RegisterStartupScript(this, this.GetType(), "Show_Counter",
"Show_Counter();", true);
//int Counter=0;
//Send Mail Codes in for()
//Counter++; in every send
//Change that label'text to new counter -> i do n't know how can i do that
//ScriptManager.RegisterStartupScript(this, this.GetType(), "Hide_Counter",
"Hide_Counter();", true);
}
ただし、このC#コードには問題があります。
そのボタンをクリックすると、UpdateProgress内の画像が表示され、このブロックが電子メールの送信を終了した後、モーダルdivを表示できますが、プロセスの開始時は表示されません。
また、そのカウンターを実装する方法がわかりません!クライアント側のコードからサーバー側のコードにジャンプするか、サーバー側のコードからクライアント側のコードにジャンプする必要があります。
これらの電子メールアドレスは、SQLServer2008R2データベースにあります。したがって、プロセスサーバー側のその部分を実行する必要があります。
私は本当にこの問題を解決する方法を学びたいと思っています、そしてこのシナリオは素晴らしいと思います、それで私がそれについて良い考えを得るのを手伝ってください。