2014-01-15 3 views
1

, так что я получил эту проблему с получением значений из CheckBoxList - мне удалось получить «текст» из выбранных. Но со значениями это не так просто.Получить выбранные значения CheckBoxList

Что я хочу сделать, так это то, что для выбранных значений есть число и для каждого выбранного я хочу умножить значение по его выбранным значениям. Если это имеет смысл?

Моего полный кода до сих пор:

{ 
    MailMessage mail = new MailMessage(); 
    SmtpClient client = new SmtpClient(); 

    client.Port = 587; 
    client.DeliveryMethod = SmtpDeliveryMethod.Network; 
    client.UseDefaultCredentials = false; 
    client.Host = "smtp.gmail.com"; 
    client.EnableSsl = true; 
    client.DeliveryFormat = SmtpDeliveryFormat.International; 
    client.Timeout = 10000; 
    client.Credentials = new System.Net.NetworkCredential("[email protected]", "myPassword"); 

    if (this.fiUpload1.HasFile) 
    { 
     this.fiUpload1.SaveAs(Server.MapPath("MyAttach/" + fiUpload1.FileName)); 
     mail.Attachments.Add(new Attachment(Server.MapPath("MyAttach/" + fiUpload1.FileName))); 
    } 
    //Gets the selected text from the checkboxlist 
    string items = string.Empty; 
    foreach (ListItem i in checkedUsers.Items) 
    { 
     if (i.Selected == true) 
     { 
      items += i.Text + ","; 
     } 
    } 

    mail.To.Add(new MailAddress("[email protected]")); 
    mail.From = new MailAddress("[email protected]"); 
    mail.Subject = txtSubject.Text; 
    mail.Body = "Ekstra informasjon fra kunde : " + txtBody.Text + " Kunden sine valgte produkter for bestilling : " + items; 

    client.Send(mail); 

    Label1.Text = "Bestilling sendt ! "; 
} 

Так как мы можем видеть на mail.body, это уже удается получить выбранный «текст» или «пункты», чтобы назвать это. Как упоминалось выше, я также хочу, чтобы он содержал значения каждого выбранного элемента и добавлял их вместе для общего числа.

+0

Просьба предоставить Вам ASPX код –

ответ

1

Имхо этот запрос LINQ с Sum и String.Join (до Concat все с запятой) является более удобным для чтения:

var selectedItems = checkedUsers.Items.Cast<ListItem>() 
    .Where(li => li.Selected) 
    .Select(li => int.Parse(li.Text)); 
int sum = selectedItems.Sum(); 
string items = string.Join(",", selectedItems); 
Смежные вопросы