#c# #email #loops
#c# #Адрес электронной почты #циклы
Вопрос:
Сначала я определю проблему. У меня есть gridview, в котором есть флажки для столбцов и адреса электронной почты в другом столбце. Если, например, я выбираю 3 строки из 7, и у всех этих 3 строк одинаковый адрес электронной почты, мой код отправит 3 электронных письма на этот адрес. Возможно ли получить эти 3 строки в 1 письме?
Мой текущий код выглядит следующим образом:
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, но мне могла бы понадобиться некоторая помощь здесь.
С уважением, Мати
Комментарии:
1. я думаю, что ее просто проверить, если вы добавите и просто отправите ее..
Ответ №1:
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 amp;amp; !lst.Contains(emadr))
{
lst.Add(emadr);
MailMessage mail = new MailMessage();
mail.To.Add(emadr.ToString());
....
}
}
}
Комментарии:
1. Эй, Джакс, я считаю, что это работает, да. Я протестировал это, и я получаю только 1 электронное письмо в свой почтовый ящик. Но содержимое электронного письма неверно. Если я выберу 2 строки с одинаковым адресом электронной почты, я получу только строку заказа, которую программа встретила первой в базе данных. Таким образом, в основном мой 2-й заказ не добавляется в электронное письмо. Должно быть что-то еще в моем коде. Спасибо за помощь.