C# 将GridView转换为列表<;对象>;

C# 将GridView转换为列表<;对象>;,c#,asp.net,gridview,C#,Asp.net,Gridview,你好,先谢谢你。我在执行我在这里发现的建议时遇到问题: 我正在从母版页抓取一个GridView,我需要向表中添加一行,然后重新绑定它。我通过母版页上的一个公共属性访问GridView,该属性随数据一起返回。所以我基本上是这样做的: var gsr = master.GridSearchResults; gsr (gsr != null) { var so = new List<MyProperties>(); so = gsr .Rows.OfType<DataGr

你好,先谢谢你。我在执行我在这里发现的建议时遇到问题:

我正在从母版页抓取一个GridView,我需要向表中添加一行,然后重新绑定它。我通过母版页上的一个公共属性访问GridView,该属性随数据一起返回。所以我基本上是这样做的:

var gsr = master.GridSearchResults;
gsr (gsr != null)
{
   var so = new List<MyProperties>();
   so = gsr .Rows.OfType<DataGridViewRow>().Select(r => r.Cells.OfType<DataGridViewCell>().Select(c => c.Value).ToArray()).ToList<MyProperties>();
   so.Add(new MyProperties()
   {
      Id = id,
      Date = date,
      Building = buildingName,
      Street = streetName
   }
   gsr.DataSource = so;
   gsr.DataBind();
}
var gsr=master.GridSearchResults;
gsr(gsr!=null)
{
var so=新列表();
so=gsr.Rows.OfType().Select(r=>r.Cells.OfType().Select(c=>c.Value.ToArray()).ToList();
添加(新的MyProperties()
{
Id=Id,
日期=日期,
Building=buildingName,
街道=街道名称
}
gsr.DataSource=so;
gsr.DataBind();
}

但我收到一个错误,它无法将实例参数类型System.Collections.Generic.IEnumerable转换为System.Collections.Generic.IEnumerable。我以为问题在于对数组的调用,但如果删除它,我只会得到相同错误的变体。

结果表明,我的问题是不应该得到gridv首先查看,但获取Gridview的源代码,该源代码正在会话中。因此,我这样解决它:

        var master = (Tab)Master;
        master.GridSearchResults.DataSource = null;
        var sessions = new Sessions();
        sessions.SlideOutSource.Add(new MyProperties {
                                       Id = Id,
                                       StartDate = hidStartDate.Value,
                                       Installation = txtInstall.Text,
                                       Command = txtCommand.Text  });

        master.GridSearchResults.DataSource = sessions.SlideOutSource;
        master.GridSearchResults.DataBind(); 

您尝试过.AsEnumerable()而不是.ToList()吗?它仍然显示相同的错误,但让我对我的示例进行更正,因为现在缺少部分错误。您是否尝试过.Cast?GridView与DataGridView不同。它们是不同的对象。DataGridView是用于Windows窗体的,不是吗?GridView是用于ASP.NET的。好的,我理解它们是不同的,语句不是cor那么,从GridView中将行选择到列表中的正确方法是什么?