ASP.NET Check Box Control - PullRequest
       6

ASP.NET Check Box Control

0 голосов
/ 22 марта 2011

Я создаю форму в ASP.NET C #, чтобы ее можно было заполнить и отправить по электронной почте нескольким получателям.Часть формы представляет собой раздел с флажками с несколькими параметрами.Я могу получить только первый выбранный вариант для отправки по электронной почте получателям, поэтому, если пользователь выбирает два или более флажков, он отправляет только первый вариант по электронной почте.Ниже приведен мой кодовый лист

    SmtpClient smtpClient = new SmtpClient();
    MailMessage message = new MailMessage();
    MailAddress From = new MailAddress(mailTextBox.Text);
    message.To.Add(new MailAddress("email@domain.com"));
    message.Subject = (companyTextBox.Text);
    message.IsBodyHtml = true;
    message.Body = "<html><head></head><body>" +
    "<p></p>" +
    "<p>Business Type: " + typeDropDownList.Text + "</p>" +
    "<p>Company: " + companyTextBox.Text + "</p>" +
    "<p>Name: " + nameTextBox.Text + "</p>" +
    "<p>Address: " + addressTextBox.Text + "</p>" +
    "<p>City: " + cityTextBox.Text + "</p>" +
    "<p>State: " + stateDropDownList.Text + "</p>" +
    "<p>Zip Code: " + zipcodeTextBox.Text + "</p>" +
    "<p>Phone Number: " + phoneTextBox.Text + "</p>" +
    "<p>Email: " + mailTextBox.Text + "</p>" +
    "<p>Number Of Locations: " + locationsDropDownList.Text + "</p>" +

    **// This is my problem area //**
    "<p>Interested In: " + interestedCheckBoxList.Text + "</p>" +
    "<p>Interested In: " + interestedCheckBoxList.Text + "</p>" +
    "<p>Interested In: " + interestedCheckBoxList.Text + "</p>" +
    **// This is my problem area //**

    "<p>Message: " + messageTextBox.Text + "</p>" +
    "</body></html>";
    smtpClient.Send(message);
    Response.Redirect("http://www.domain.com");

Заранее спасибо.

Джим

Ответы [ 3 ]

2 голосов
/ 22 марта 2011

Вам нужно будет перебрать все элементы в CheckBoxList и добавить их по отдельности.

Пример:

foreach(ListItem li in interestedCheckBoxList.Items)
{
   //add your stuff
   if(li.Selected)
   {
       //should be using string builder here but....
       message.Body += "<p>Interested In: " + li.Text + "</p>";
   }
}
1 голос
/ 22 марта 2011

Вам нужно перебрать свой CheckBoxList, найти все отмеченные элементы и получить свойство Text для каждого элемента и добавить к вам текст электронной почты.

string yourSelectedList = "";
foreach (ListItem i in chklst.Items)
{
    if (i.Selected)
         yourSelectedList += (i.Text + ", ");
}

Затем удалите лишнюю запятую в конце:)

"<p>Interested In: " + yourSelectedList  + "</p>" +

Попробуйте использовать StringBuilder при объединении множества строк, так как это будет иметь большое значение.

0 голосов
/ 22 марта 2011

Попробуйте заменить код в «проблемной области» следующим:

string InterestedIn = "";
foreach (ListItem li in interestedCheckBoxList.Items)
{
    if (li.Selected)
        InterestedIn += "<p>Interested In: " + li.Text + "</p>";
}

Конечно, вы не можете объединить это как часть вашей первоначальной конкатенации строк, поэтому создайте строку «InterestedIn»своего рода и объединить тело письма с этим.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...