填写文本框与多个电子邮件地址从下拉列表和逗号分隔在asp . net

本文关键字:分隔 net asp 下拉列表 文本 电子邮件地址 | 更新日期: 2023-09-27 18:03:21

我有一个文本框和一个下拉列表。下拉列表存储所有的电子邮件地址。我想填充多个电子邮件地址的文本框,每个地址由逗号分隔时,下拉列表文本被更改。我尝试这样做:

 static string emailList;
    protected void Page_Load(object sender, EventArgs e)
    {

    }
    protected void DropDownList1_TextChanged(object sender, EventArgs e)
    {
        emailList = emailList + DropDownList1.Text + ",";
        emails.Text = emailList;
    } 

,但它没有像预期的那样工作,因为逗号也包含在第一个电子邮件地址的前面。

填写文本框与多个电子邮件地址从下拉列表和逗号分隔在asp . net

我想你只希望在电子邮件地址之间使用逗号,所以

protected void DropDownList1_TextChanged(object sender, EventArgs e)
{
    if(string.IsNullOrWhiteSpace(emailList))
        emailList = DropDownList1.Text;
    else
        emailList += "," + DropDownList1.Text;
    emails.Text = emailList;
} 

我假设您省略了在Postback之间重新加载emailList的代码。

也可以这样做:

       if(string.IsNullOrEmpty(emailList))
        {
            emailList = DropDownList1.Text;
        }
        else
        {
            var tempEailList = emailList.Split(',').ToList();
            tempEailList.Add(DropDownList1.Text);
            emailList = string.Join(",", tempEailList);
        }

有一种更有效的方法。

List<string> emailAddresses = new List<string>(); ;
foreach(ListItem item in DropDownList1.Items)
{
     emailAddresses.Add(item.Text);
}
string emailList = string.Join(",", emailAddresses.ToArray());