Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/299.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何将选中复选框中的信息后的逗号放入文本框中?_C#_Asp.net - Fatal编程技术网

C# 如何将选中复选框中的信息后的逗号放入文本框中?

C# 如何将选中复选框中的信息后的逗号放入文本框中?,c#,asp.net,C#,Asp.net,我正在从网格视图中提取电子邮件,并假设相应地用逗号分隔电子邮件。我尝试使用string.join方法,但是它根本没有出现在文本框中。我尝试不使用string.join,但在每封电子邮件旁边都会添加逗号。如何正确地分隔电子邮件 例如:Helloworld@gmail.com, Helloeveryone@gmail.com, HelloBye@gmail.com而不是: foreach (GridViewRow row in GridView1.Rows)

我正在从网格视图中提取电子邮件,并假设相应地用逗号分隔电子邮件。我尝试使用string.join方法,但是它根本没有出现在文本框中。我尝试不使用string.join,但在每封电子邮件旁边都会添加逗号。如何正确地分隔电子邮件

例如:Helloworld@gmail.com, Helloeveryone@gmail.com, HelloBye@gmail.com而不是:

       foreach (GridViewRow row in GridView1.Rows)         
       {           
        var chk = row.FindControl("myCheckBox") as CheckBox;
        if (chk.Checked)
        {
        var email = row.FindControl("LabelEmail") as Label;
        txtEmails.Text += (string.Join(",", email.Text));
        }
试试这个:

txtEmails.Text += (string.Join(",", email.Text));
编辑:

因为它在最后一封电子邮件的结尾处添加了逗号,所以您可以这样做来防止:

txtEmails.Text += email.Text + ", ";
int计数器=0;
//计数器变量必须是全局变量
foreach(GridView1.Rows中的GridViewRow行)
{           
var chk=row.FindControl(“myCheckBox”)作为复选框;
如果(已检查)
{
计数器++;
var email=row.FindControl(“LabelEmail”)作为标签;
如果(计数器而不是:

       foreach (GridViewRow row in GridView1.Rows)         
       {           
        var chk = row.FindControl("myCheckBox") as CheckBox;
        if (chk.Checked)
        {
        var email = row.FindControl("LabelEmail") as Label;
        txtEmails.Text += (string.Join(",", email.Text));
        }
试试这个:

txtEmails.Text += (string.Join(",", email.Text));
编辑:

因为它在最后一封电子邮件的结尾处添加了逗号,所以您可以这样做来防止:

txtEmails.Text += email.Text + ", ";
int计数器=0;
//计数器变量必须是全局变量
foreach(GridView1.Rows中的GridViewRow行)
{           
var chk=row.FindControl(“myCheckBox”)作为复选框;
如果(已检查)
{
计数器++;
var email=row.FindControl(“LabelEmail”)作为标签;

如果(counterstring.Join与字符串数组一起工作,如果您向它传递一个简单的字符串,就像在您的案例中一样,您将看不到任何更改。我认为您希望在每个电子邮件地址之后追加,如果您为您的案例使用StringBuilder,效果会更好

int counter = 0;
// The counter variable must be global
foreach (GridViewRow row in GridView1.Rows)         
{           
    var chk = row.FindControl("myCheckBox") as CheckBox;
    if (chk.Checked)
    {
        counter++;
        var email = row.FindControl("LabelEmail") as Label;
        if (counter <= 1)
        txtEmails.Text += email.Text;
        else
        txtEmails.Text += ", " + email.Text;
    }
}
最后你可以做到:

StringBuilder sb = new StringBuilder();
foreach (GridViewRow row in GridView1.Rows)
        {
            var chk = row.FindControl("myCheckBox") as CheckBox;
            if (chk.Checked)
            {
            var email = row.FindControl("LabelEmail") as Label;
            sb.Append(email.Text);
            sb.Append(",");
            }
稍后您可以指定

string strEmails = sb.ToString().TrimEnd(','); // TrimEnd to remove the last comma

string.Join与字符串数组一起工作,如果您像在您的案例中那样向它传递一个简单的字符串,您将看不到任何更改。我认为您希望在每个电子邮件地址之后附加一个字符串,如果您在您的案例中使用StringBuilder会更好

int counter = 0;
// The counter variable must be global
foreach (GridViewRow row in GridView1.Rows)         
{           
    var chk = row.FindControl("myCheckBox") as CheckBox;
    if (chk.Checked)
    {
        counter++;
        var email = row.FindControl("LabelEmail") as Label;
        if (counter <= 1)
        txtEmails.Text += email.Text;
        else
        txtEmails.Text += ", " + email.Text;
    }
}
最后你可以做到:

StringBuilder sb = new StringBuilder();
foreach (GridViewRow row in GridView1.Rows)
        {
            var chk = row.FindControl("myCheckBox") as CheckBox;
            if (chk.Checked)
            {
            var email = row.FindControl("LabelEmail") as Label;
            sb.Append(email.Text);
            sb.Append(",");
            }
稍后您可以指定

string strEmails = sb.ToString().TrimEnd(','); // TrimEnd to remove the last comma

我试过这个方法,但逗号每次都出现在每封电子邮件之后,甚至是最后一封。我试过这个方法,但逗号每次都出现在每封电子邮件之后,甚至是最后一封。