发布
社区首页 >问答首页 >在C# asp.net中将数据表的单行绑定到detailsview视图的最简单方法是什么?

在C# asp.net中将数据表的单行绑定到detailsview视图的最简单方法是什么?
EN

Stack Overflow用户
提问于 2009-03-01 15:00:01
回答 2查看 3.8K关注 0票数 4

我目前将行复制到一个空的datatable并绑定它,但肯定有更好的方法……

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-03-01 15:25:07

你不需要一个数据表来绑定-你只需要像list / enumerable这样的东西。例如,如果您知道行号:

代码语言:javascript
代码运行次数:0
复制
DataRowView row = dt.DefaultView[1]; // second row
detailsView1.DataSource = new DataRowView[] {row};
detailsView1.DataBind();

请注意,我们必须使用DataRowView (而不是DataRow)来获取仅限运行时的属性(即来自列的数据)。如果您有一个DataRow,这种方法可以很容易地封装在一个实用方法中,例如一个扩展方法:

代码语言:javascript
代码运行次数:0
复制
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");
}

通过以下方式:

代码语言:javascript
代码运行次数:0
复制
detailsView1.DataSource = row.ForBinding();
detailsView1.DataBind();
票数 5
EN

Stack Overflow用户

发布于 2009-03-01 15:03:40

是的,这是最简单的方法:)

如果你只想显示一个字段,你可以使用输出参数,但是如果你在一个详细视图中显示多个字段,这是最简单的方法。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/599937

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档