【问题标题】:ASP.NET GridView to List with headersASP.NET GridView 与标题列表
【发布时间】:2021-03-27 13:52:00
【问题描述】:

我想将我的 GridView 转换为以标题为第一行的列表。

这可以将我的 GridView 转换为没有标题的列表。

var Result = GridView.Rows.OfType<GridViewRow>().Select(
                        r => r.Cells.OfType<TableCell>().Select(c => c.Text).ToArray()).ToList();

我正在尝试将其与标题一起转换回来。

var myorgitem = GridView.Rows.OfType<GridViewRow>().Select(
                    r => r.Cells.OfType<TableCell>().ToDictionary(
                        c => ????????????????????, c => (c.Text ?? "").ToString())).ToList();

谢谢!

【问题讨论】:

    标签: c# asp.net gridview aspxgridview


    【解决方案1】:

    这暂时有效,但我希望它更短更高效。这会将任何 Gridview 转换为以标题为第一行的列表。

    protected List<string[]> GridViewToList(GridView gv)
        {
            var mylist = gv.Rows.OfType<GridViewRow>().Select(
                        r => r.Cells.OfType<DataControlFieldCell>().Select(
                            c => c.ContainingField.HeaderText).ToArray()).ToList();
            if (mylist.Count > 1)
                mylist.RemoveRange(1, mylist.Count - 1);
    
            mylist.AddRange(gv.Rows.OfType<GridViewRow>().Select(
                        r => r.Cells.OfType<DataControlFieldCell>().Select(c => c.Text).ToArray()).ToList());
            return mylist;
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-25
      • 1970-01-01
      • 2011-03-23
      • 2020-01-06
      • 1970-01-01
      相关资源
      最近更新 更多