2020年4月17日 星期五

[研究][C#][ASP.NET][WebForm] GridView 轉 DataTable

[研究][C#][ASP.NET][WebForm] GridView 轉 DataTable

2020-04-17

public static DataTable GridViewtoDataTable(GridView gv)
        {
            // GridView2DataTable
            // 只會抓 <asp:BoundField DataField="myname" HeaderText="myname" SortExpression="myname" /> 這類的值,
            // 執行【將這個欄位轉為 TemplateField】的欄位不會被抓到。 
            gv.AllowSorting = false;    // 支援排序時,標題不是文字,要改抓 LinkButton 的文字,麻煩,不如暫時取消
            gv.AllowPaging = false; // 分頁狀態下,只能抓到當頁的10筆,必須取消分頁
            gv.DataBind();
            DataTable dt = new DataTable();
            DataColumn dc;
            DataRow dr;   
            for (int i = 0; i < gv.Columns.Count; i++)
            {
                dc = new DataColumn();
                dc.ColumnName = gv.Columns[i].HeaderText;
                dt.Columns.Add(dc);
            }
            for (int i = 0; i < gv.Rows.Count; i++)
            {
                dr = dt.NewRow();
                for (int j = 0; j < gv.Columns.Count; j++)
                {
                    dr[j] = gv.Rows[i].Cells[j].Text;
                }
                dt.Rows.Add(dr);
            }
            gv.AllowSorting = true;
            gv.AllowPaging = true;
            gv.DataBind();
            return dt;
        }

(完)


沒有留言:

張貼留言