1

我想从 gridview 控件中分离多个值并将其显示在四个文本框中。那可能吗?现在我得到这个值:在此处输入图像描述

使用此代码:

        var lblRef = new Label
                         {
                             Text = ((Label) row.FindControl("LabelAssignmentReference")).Text
                         };

        string valueTextBox = lblRef.Text;
        int indexOfRefSwe = valueTextBox.IndexOf(",", StringComparison.Ordinal);
        string valueRef = valueTextBox.Substring(0, indexOfRefSwe);

        TextBoxReference.Text = valueRef;

但是我如何在多个值中获得它?` TextBoxReference.Text = valueRef;

        TextBoxRefPhone.Text = "??";
        TextBoxRefEmail.Text = "??";
        TextBoxRefDesc.Text = "??";`
4

3 回答 3

4

这应该让你开始。

string[] splits = lblRef.Text.Split(',');
Console.WriteLine(splits[0]); // refname
Console.WriteLine(splits[1]); // 08712332
Console.WriteLine(splits[2]); // ref@gmail.com
Console.WriteLine(splits[3]); // refdescription

我建议还添加验证检查以确保您不会收到任何错误,例如splits.Length == 4按预期检查。

请注意,空格将包含在 的最后三个元素的开头splits。您可以使用该方法消除那些,或者通过为函数Trim提供一个分隔符数组并忽略空元素(有一个重载)。new[] {',', ' '}split

于 2013-05-10T09:45:52.570 回答
1

System.String.Split()-方法:

string[] parts = str.Split(new char[] {','});

之后,在零件上工作。

来自MSDN的示例

using System;

public class SplitTest {
    public static void Main() {

        string words = "This is a list of words, with: a bit of punctuation" +
                       "\tand a tab character.";

        string [] split = words.Split(new Char [] {' ', ',', '.', ':', '\t' });

        foreach (string s in split) {

            if (s.Trim() != "")
                Console.WriteLine(s);
        }
    }
}
于 2013-05-10T09:45:24.723 回答
0

你可以做如下

var values = lblRef.Text.Split(',');

TextBoxRefPhone.Text = values[0];
if(values.Length>0)
   TextBoxRefEmail.Text =values[1];
if(values.Length>1)
  TextBoxRefDesc.Text = values[2];

编辑

有一个 Split 重载方法可以接受params。所以我们可以给一个字符

public string[] Split(params char[] separator);

params关键字允许您指定一个方法参数,该参数接受一个参数,其中参数的数量是可变的

于 2013-05-10T09:48:42.127 回答