1

ユーザーが友達リクエストを送信できるWebアプリケーションを1つ作成しました。ABの2 人のユーザーがいる場合。AユーザーがBに友達リクエストを送信すると、 Bユーザー ダッシュボードに 1 つのポップアップが表示されます。そのポップアップ ボックスには、確認または無視する2 つのボタンがあります。

ユーザーが確認ボタンをクリックすると、そのポップアップ ボックスを閉じるのに時間がかかります。バックグラウンドでメール送信用のコードを実行するためです。電子メールが送信されると、そのポップアップ ボックスが閉じます。そのため、確認ボタンをクリックした直後にポップアップボックスを閉じ、そのユーザーにメールを送信した後に閉じたいと思います。

リクエストを受け入れてメールを送信するための私のコードは次のとおりです

#region dlUserFriendRequests_ItemCommand
    protected void dlUserFriendRequests_ItemCommand(object source, DataListCommandEventArgs e)
    {
        HtmlTable objDataTable;
        //Panel objDataTable;
        switch (e.CommandName)
        {
            case "confirm":
                RadioButtonList objRadioButtonList;
                int intFriendRelationID = -1;
                objRadioButtonList = (RadioButtonList)e.Item.FindControl("rblstFriends");

                if (objRadioButtonList != null)
                {
                    intFriendRelationID = UserManagementBL.AcceptUserFriendRequest(Convert.ToInt32(e.CommandArgument), this.LoginSessionDO.UserID, objRadioButtonList.SelectedItem.Text);

                    if (intFriendRelationID > 0)
                    {
                        int SentByUserID = Convert.ToInt32(e.CommandArgument);
                        DataTable dtbSenderdetails = null;
                        string SenderEmail = "";

                        dtbSenderdetails = UserManagementBL.GetUserDetails(SentByUserID);
                        if (dtbSenderdetails != null)
                        {
                            SenderEmail = dtbSenderdetails.Rows[0]["UserName"].ToString();
                            SendConfirmationMail(SenderEmail);
                            Response.Redirect("~/Dashboard/Dashboard.aspx",false);                                
                            //GetUserFriendRequests();
                        }
                    }
                }
              break;    

              case "Ignore":
                int intFriendRequestID = -1;
                intFriendRequestID = UserManagementBL.IgnoreUserFriendRequest(Convert.ToInt32(e.CommandArgument), this.LoginSessionDO.UserID);
                GetUserFriendRequests();
                break;
        }
   }
        #endregion

 #region Send confirmation mail
    public void SendConfirmationMail(string email)
    {
        //DataTable dtblUserDetails = UserManagementBL.GetUserByUserName(email);
        //if (dtblUserDetails != null)
        //{
            //int UserID = Convert.ToInt32(dtblUserDetails.Rows[0]["UserID"]);

            //string FirstName = Convert.ToString(dtblUserDetails.Rows[0]["FirstName"]);
            //string LastName = Convert.ToString(dtblUserDetails.Rows[0]["LastName"]);
            string FirstName = this.LoginSessionDO.FirstName;
            string LastName = this.LoginSessionDO.LastName;

            var parameters = new System.Collections.Generic.Dictionary<string, string>();
            parameters.Add("USER_NAME", string.Format("{0} {1}", FirstName, LastName));


            parameters.Add("USER_IMAGE_URL", string.Format(SystemConfiguration.GetSiteURL() + "UserControls/UserPhoto.ashx?UserID={0}", this.LoginSessionDO.UserID));

            string ToAddress = email;
            string subject = FirstName + "  " + LastName + " confirmed you as a friend on Lifetrons.";

            CommonFunctions.CommonFunctions.SendEmail(SystemConfiguration.GetEmailSenderAddress(), ToAddress, subject, CommonFunctions.EmailTemplates.AcceptFriendRequest, parameters);
        //}
    }
    #endregion

これが私のポップアップボックスの画像です アラート

では、確認ボタンをクリックした直後にそのポップアップボックスを閉じるにはどうすればよいですか? コードに変更はありますか?

4

1 に答える 1

1

これは JavaScript で行います。アクションを実行するために既に AJAX を使用していると思います。Confirmそうしないと、ページをリロードするだけで、ポップアップはそこにあるはずがありません (既に確認されているためですか?)。

フロントエンドに jQuery がある場合は、次を使用できます。

$('#confirm-box-id').hide();

jQuery がなければ、以下を使用できます。

document.getElementById('confirm-box-id').style.display = 'none';

あなたのメッセージを再読すると、これは単なる長時間実行アクションのようです。これを非表示にし、上記のコードを使用して進行状況を表示しない場合、たとえば、ユーザーが別の場所に移動したり、ブラウザーを閉じたりすると、アクションの処理が停止したり、サーバーが強制的に終了したりする可能性があることに注意してください。確認が起こらないようにします。

于 2012-12-21T10:20:09.727 に答える