Gridvew Looping несколько раз, даже если выбран минимум записей в asp.net - PullRequest
0 голосов
/ 30 апреля 2019

У меня есть gridview, в котором каждая строка содержит checkbox для выбора.Этот выбор будет использоваться для Approve или Reject целей.

Но проблема здесь в том, что если я выберу 2 строк из gridview, он будет повторяться как минимум 4-5 раз и даст мне несколько электронных писемта же строка.

Ниже мой код.Пожалуйста, предложите.

protected void btnApproveCMM_Click(object sender, EventArgs e)
    {
        string strDate = "";
        string strMailContent = "";
        DataTable dtApprove = new DataTable();
        CommonDB ObjDB = new CommonDB();

        try
        {
            bool flgCMM = false;
            IPColoFields ObjIPColoFields = new App_Code.IPColoFields();
            List<IPColoBilling_BKP.App_Code.UMS.UMSGroupDetails> UMSGroupDetails = (List<IPColoBilling_BKP.App_Code.UMS.UMSGroupDetails>)Session["lstUMSGroupDetails"];

            Session["lstUMSGroupDetails"] = UMSGroupDetails;
            string strApprove = "";

            if (ViewState["CheckedCheckboxes_CMM"] != null)
            {

                foreach (GridViewRow row in grdDisplayCMMData.Rows)
                {
                    if (((CheckBox)row.FindControl("chkApprRejCMM")).Checked)
                    {
                        Label SAPID_CMM = (Label)row.FindControl("lblSAP_ID_CMM");
                        Label ID = (Label)row.FindControl("lblID_CMM");
                        int Id = Convert.ToInt32(ID.Text);

                        ObjIPColoFields.Unique_Id = Id;
                        ObjIPColoFields.UMS_GRP_BY_ID = intCurrentGrpId;
                        ObjIPColoFields.UMS_GRP_BY_NAME = strCurrentGrp;
                        ObjIPColoFields.UMS_GRP_TO_ID = UMSGroupDetails[1].GroupID;
                        ObjIPColoFields.UMS_GRP_TO_NAME = UMSGroupDetails[1].GroupName;
                        ObjIPColoFields.FCA_STATUS = "1";
                        ObjIPColoFields.LAST_UPDATED_BY = lblUserName.Text;
                        strDate = DateTime.Now.ToString();

                        strApprove = CommonDB.Approve_IPCOLO_CMMLevel(ObjIPColoFields);

                        if (ObjIPColoFields.Unique_Id != null || ObjIPColoFields.Unique_Id != 0)
                        {
                            strMailContent = Get_Email_Content(ObjIPColoFields.LAST_UPDATED_BY, SAPID_CMM.Text, strIPCOLO_CMM, Convert.ToString(Id), strDate, "Approved");
                            SendEmail(lblUserName.Text, strMailContent, strIPCOLO_CMM);
                        }
                    }
                }
            }

            BindCMMData();

            if (flgCMM == false)
            {
                ScriptManager.RegisterStartupScript(this, this.GetType(), "alert", "alert('Please check atleast one row'); window.location ='IpColoDefault.aspx';", true);
            }
            else
            {
                ScriptManager.RegisterStartupScript(this, this.GetType(), "alert", "alert('Record Approved successfully'); window.location ='IpColoDefault.aspx';", true);
            }
        }
        catch (Exception ex)
        {
            string strErrorMsg = ex.Message.ToString() + " " + "StackTrace :" + ex.StackTrace.ToString();
            CommonDB.WriteLog("ERROR:" + strErrorMsg, ConfigurationManager.AppSettings["IPCOLO_LOG"].ToString());
        }
    }

1 Ответ

1 голос
/ 30 апреля 2019

Используйте этот код

foreach (GridViewRow row in grdDisplayCMMData.Rows)
{
      if (((Checkbox)row.FindControl("chkApprRejCMM")).Checked)
      {
      Label SAPID_CMM = (Label)row.FindControl("lblSAP_ID_CMM");

      ObjIPColoFields.Unique_Id = Id;
      ObjIPColoFields.UMS_GRP_BY_ID = intCurrentGrpId;
      ObjIPColoFields.UMS_GRP_BY_NAME = strCurrentGrp;
      ObjIPColoFields.UMS_GRP_TO_ID = UMSGroupDetails[1].GroupID;
      ObjIPColoFields.UMS_GRP_TO_NAME = UMSGroupDetails[1].GroupName;
      ObjIPColoFields.FCA_STATUS = "1";
      ObjIPColoFields.LAST_UPDATED_BY = lblUserName.Text;
      strDate = DateTime.Now.ToString();                                                    

      strApprove = CommonDB.Approve_IPCOLO_CMMLevel(ObjIPColoFields);

      if (ObjIPColoFields.Unique_Id != null || ObjIPColoFields.Unique_Id != 0)
      {
            strMailContent = Get_Email_Content(ObjIPColoFields.LAST_UPDATED_BY, SAPID_CMM.Text, strIPCOLO_CMM, Convert.ToString(Id), strDate, "Approved");
            SendEmail(lblUserName.Text, strMailContent, strIPCOLO_CMM);
      }
      }
 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...