CSharp - 获取CheckBoxList的选定值

  显示原文与译文双语对照的内容

因这里我得到了从一个with获取值的问题- 我能从选定的值获得"文本",但是它不容易。

我想完成的是对于选定的值,有一个数字,对于每个选定的值,我想用它所选值乘以值。 如果这让你觉得?

我的完整代码是:


{
 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("myemail@mail.com","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("mail@mail.com"));
 mail.From = new MailAddress("mail@mail.com");
 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, 已经管理选定的"文本"或者"项目"来调用它。 如上所述,我还希望它包含每个选定项的值,并将它们添加到一个总数。

时间: 作者:

注意,使用 SumString.Join ( 用逗号连起来)的LINQ查询更易于阅读:


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);

作者:
...