2011-04-15 102 views
0

我将首先定义问题。我有一个gridview有一个列复选框和另一列电子邮件地址。例如,如果我从7中选择3行并且这3行具有完全相同的电子邮件地址,我的代码将发送3封电子邮件到该地址。是否可以在1封邮件中获得这3行?控制是否已经在gridview中检查过电子邮件

我当前的代码如下所示:

for (int i = 0; i < GridView1.Rows.Count; i++) 
{ 
    CheckBox ck = (CheckBox)GridView1.Rows[i].Cells[0].FindControl("CheckBoxATH"); 

    if (ck != null) 
    { 
    Label lblUsrE = (Label)GridView1.Rows[i].Cells[7].FindControl("LabelEmail"); 
     string emadr = lblUsrE.Text.ToString(); 

    if (ck.Checked == true) 
     { 
     MailMessage mail = new MailMessage(); 
      mail.To.Add(emadr.ToString()); 
     }}} 

我想围绕lblUsrE另一个循环的,但我在这里可以使用一些帮助。

问候马蒂

+0

我认为它简单的检查BEF您添加,只是把它.. – asharajay 2011-04-15 12:20:54

回答

2
List<string> lst = new List<string>(); 
for (int i = 0; i < GridView1.Rows.Count; i++) 
{ 
    CheckBox ck = (CheckBox)GridView1.Rows[i].Cells[0].FindControl("CheckBoxATH"); 
    if (ck != null) 
    { 
     Label lblUsrE = (Label)GridView1.Rows[i].Cells[7].FindControl("LabelEmail"); 
     string emadr = lblUsrE.Text.ToString(); 
     if (ck.Checked == true && !lst.Contains(emadr)) 
     { 
     lst.Add(emadr); 
     MailMessage mail = new MailMessage(); 
     mail.To.Add(emadr.ToString()); 
     .... 
     } 
    } 
} 
+0

嘿JAX,我相信这个工程肯定。我对它进行了测试,在收件箱中只收到1封电子邮件。但电子邮件的内容不正确。如果我选择具有相同电子邮件地址的2行,我只能得到程序在数据库中首先遇到的订单行。所以基本上我的第二个订单不会被添加到电子邮件中。必须是我的代码中的其他东西。 Ty帮忙。 – Dieter 2011-04-15 12:45:18

相关问题