子串值到多个文本框中

时间:2013-05-10 09:42:52

标签: c#

我想从gridview控件中分离多个值,并在四个文本框中显示它。那可能吗? 现在我得到这个值:enter image description here

使用此代码:

        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 = "??";`

3 个答案:

答案 0 :(得分: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,并忽略空元素(对此有重载)。

答案 1 :(得分: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);
        }
    }
}

答案 2 :(得分: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];

修改

有一个接受params的Split重载方法。所以我们可以给一个角色

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

params 关键字允许您指定采用的方法参数   参数,其中参数的数量是可变的