我想从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 = "??";`
答案 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 关键字允许您指定采用的方法参数 参数,其中参数的数量是可变的。