0

現在のDatagridデータをDataTableに変換する方法は?データグリッドをフィルタリングしました。フィルタリングされたデータのみをデータテーブルに入れたいと思います。Datagrid.ItemSourceまたはDatagridViewはここでは役に立ちません。

4

2 に答える 2

2

次のように、datagridからdatatbleにデータを配置できます。

        DataTable dt = new DataTable();  
        DataColumn[] dcs = new DataColumn[]{};  

        foreach (DataGridViewColumn c in dgv.Columns)  
        {  
            DataColumn dc = new DataColumn();  
            dc.ColumnName = c.Name;  
            dc.DataType = c.ValueType;  
            dt.Columns.Add(dc);  

        }  

        foreach (DataGridViewRow r in dgv.Rows)  
        {  
            DataRow drow = dt.NewRow();  

            foreach (DataGridViewCell cell in r.Cells)  
            {  
                drow[cell.OwningColumn.Name] = cell.Value;  
            }  

            dt.Rows.Add(drow);  
        }  
于 2012-10-18T08:02:09.897 に答える
1

更新されたデータをセッションで永続化するか、XMLで書き込み、必要なときにいつでもデータを取得します。

このようなもの

 private void BindGrid()
    {
        DataTable dt;
        if (Session["GridData"] == null)
        {
            dt = GetData();//From database or and other source
            Session["GridData"] = dt;
        }
        else
        {
            dt = (DataTable)Session["GridData"];
        }

        GridView.datasource = dt;
        GridView.Databind();
    }

    private void UpdataData(object sender, EventArgs e)
    {
        DataTable dt;
        if (Session["GridData"] != null)
        {
            dt = (DataTable)Session["GridData"];


        // Do whatever you want with dt (datatable);
        Session["GridData"] = dt;

        BindGrid();
       }

    }
于 2012-10-18T08:08:15.280 に答える