我目前将行复制到一个空的datatable并绑定它,但肯定有更好的方法……
发布于 2009-03-01 15:25:07
你不需要一个数据表来绑定-你只需要像list / enumerable这样的东西。例如,如果您知道行号:
DataRowView row = dt.DefaultView[1]; // second row
detailsView1.DataSource = new DataRowView[] {row};
detailsView1.DataBind();
请注意,我们必须使用DataRowView
(而不是DataRow
)来获取仅限运行时的属性(即来自列的数据)。如果您有一个DataRow
,这种方法可以很容易地封装在一个实用方法中,例如一个扩展方法:
public static DataRowView[] ForBinding(this DataRow row)
{
foreach (DataRowView rowView in row.Table.DefaultView)
{
if (ReferenceEquals(rowView.Row, row))
{
return new DataRowView[] { rowView };
}
}
throw new ArgumentException("Row not found in the default view", "row");
}
通过以下方式:
detailsView1.DataSource = row.ForBinding();
detailsView1.DataBind();
发布于 2009-03-01 15:03:40
是的,这是最简单的方法:)
如果你只想显示一个字段,你可以使用输出参数,但是如果你在一个详细视图中显示多个字段,这是最简单的方法。
https://stackoverflow.com/questions/599937
复制相似问题