我想要做到这一点,所以我过度简化了它。
按原样,这将在所有三个文本框中返回空值。
我知道“foreach”不正确。
有人可以告诉我如何扩展类对象。
Default.aspx.cs
protected void Button1_Click(object sender, EventArgs e)
{
List<dataclass> returnedData = Getdata();
foreach (var dataclass0 in returnedData)
{
TextBox1.Text = dataclass0.item1;
TextBox2.Text = dataclass0.item2;
TextBox3.Text = dataclass0.item3;
}
}
public static List<dataclass> Getdata()
{
List<dataclass> returndata = new List<dataclass>();
dataclass dc = new dataclass();
dc.item1 = "a";
dc.item2 = "b";
dc.item3 = "c";
returndata.Add(dc);
return returndata;
}
的Class1.cs
public class dataclass
{
public string item1 { get; set; }
public string item2 { get; set; }
public string item3 { get; set; }
}
答案 0 :(得分:1)
以下代码将构建3个字符串(每个TextBox一个),然后将它们分配给相应的Text属性。
它使用StringBuilder
来优化连接。 AppendLine
有助于将不同的连接值保持分开:.Replace(Environment.NewLine, ", ")
稍后会用“,”替换换行符;如果您不需要将值分开,只需删除.Replace(Environment.NewLine, ", ")
并将AppendLine
替换为Append
。
protected void Button1_Click(object sender, EventArgs e)
{
var sbText1 = new StringBuilder();
var sbText2 = new StringBuilder();
var sbText3 = new StringBuilder();
var returnedData = Getdata();
foreach (var dataclass0 in returnedData)
{
sbText1.AppendLine(dataclass0.item1);
sbText2.AppendLine(dataclass0.item2);
sbText3.AppendLine(dataclass0.item3);
}
TextBox1.Text = sbText1.ToString().Replace(Environment.NewLine, ", ");
TextBox2.Text = sbText2.ToString().Replace(Environment.NewLine, ", ");
TextBox3.Text = sbText3.ToString().Replace(Environment.NewLine, ", ");
}
此致 丹尼尔。