C# 如何使用临时表(数据表)在gridview中逐行插入值

C# 如何使用临时表(数据表)在gridview中逐行插入值,c#,asp.net,gridview,C#,Asp.net,Gridview,我的asp.net页面中有两个GridView。数据来自两个不同的数据库。其中,一个gridview具有选择行功能。现在我想做的是,我需要根据第一个gridview的2个单元格和第二个gridview的第一列数据的选择,逐行生成第三个gridview(第一列数据对所有行都是通用的) gridview中的值按预期显示,但一次只能保存一行数据。当我继续从下拉列表中选择另一个值时,gridview将刷新,现有数据将消失,新数据将出现 如何在gridview中逐行插入选定的数据 下面是我的代码: pro

我的asp.net页面中有两个GridView。数据来自两个不同的数据库。其中,一个gridview具有选择行功能。现在我想做的是,我需要根据第一个gridview的2个单元格和第二个gridview的第一列数据的选择,逐行生成第三个gridview(第一列数据对所有行都是通用的)

gridview中的值按预期显示,但一次只能保存一行数据。当我继续从下拉列表中选择另一个值时,gridview将刷新,现有数据将消失,新数据将出现

如何在gridview中逐行插入选定的数据

下面是我的代码:

protected void btnAssign_Click(object sender, EventArgs e)
    {
    SetInitialRowToGrid();
                int rowIndex = 0;

                if (ViewState["TempTable"] != null)
                {
                    // Get TempTable from viewstate
                    var tempTable = (DataTable)ViewState["TempTable"];
                    DataRow tempRow = null;

                    if (tempTable.Rows.Count > 0)
                    {
                        for (int i = 1; i <= tempTable.Rows.Count; i++)
                        {
                            // Get Grid's Label values
                            var EmpID =
                                (Label)grdEmp.SelectedRow.FindControl("lblEmpID");
                            var firstName =
                                (Label)grdEmp.SelectedRow.FindControl("lblFirstName");

                            var date = DateTime.Now.ToString();                

                            var planID =
                                (Label)grdPlanID.Rows[rowIndex].Cells[1].FindControl("lblPlanID");

                            // Create new row and update Row Number
                            tempRow = tempTable.NewRow();

                            tempTable.Rows[0]["Emp_ID"] = EmpID.Text;
                            tempTable.Rows[i - 1]["First_Name"] = firstName.Text;
                            tempTable.Rows[i - 1]["Created_Time"] = date;
                            tempTable.Rows[i - 1]["Plan_ID"] = planID.Text;

                            rowIndex++;
                        }

                        // Add data to datatable and viewstate
                        tempTable.Rows.Add(tempRow);
                        ViewState["TempTable"] = tempTable;

                        // Attach Gridview Datasource to datatable
                        grdList.DataSource = tempTable;
                        grdList.DataBind();
                    }
                }

                //Set Previous Data on Postbacks
                SetPreviousData();
     }
private void SetInitialRowToGrid()
    {
        // Initialize and Set initial row of Datatable
        var tempDataTable = new DataTable();
        tempDataTable.Columns.Add("Emp_ID");
        tempDataTable.Columns.Add("First_Name");
        tempDataTable.Columns.Add("Created_Time");
        tempDataTable.Columns.Add("Plan_ID");
        tempDataTable.Rows.Add("1", "", "", "");

        // Store that datatable into viewstate
        ViewState["TempTable"] = tempDataTable;

        // Attach Gridview Datasource to datatable
        grdList.DataSource = tempDataTable;
        grdList.DataBind();
    }
private void SetPreviousData()
    {
        int rowIndex = 0;

        if (ViewState["TempTable"] != null)
        {
            var tempTable = (DataTable)ViewState["TempTable"];

            if (tempTable.Rows.Count > 0)
            {
                for (int i = 0; i < tempTable.Rows.Count; i++)
                {
                    var EmpID =
                        (Label)grdEmp.SelectedRow.FindControl("lblEmpID");
                    var firstName =
                        (Label)grdEmp.SelectedRow.FindControl("lblFirstName");

                    var date = DateTime.Now.ToString();

                    var planID =
                        (Label)grdList.Rows[rowIndex].Cells[1].FindControl("lblPlanID");

                    EmpID.Text = tempTable.Rows[i]["Emp_ID"].ToString();
                    firstName.Text = tempTable.Rows[i]["First_Name"].ToString();
                    date = tempTable.Rows[i]["Created_Time"].ToString();
                    planID.Text = tempTable.Rows[i]["Plan_ID"].ToString();

                    rowIndex++;
                }
            }
        }
    }
SetPreviousData()代码如下所示:

protected void btnAssign_Click(object sender, EventArgs e)
    {
    SetInitialRowToGrid();
                int rowIndex = 0;

                if (ViewState["TempTable"] != null)
                {
                    // Get TempTable from viewstate
                    var tempTable = (DataTable)ViewState["TempTable"];
                    DataRow tempRow = null;

                    if (tempTable.Rows.Count > 0)
                    {
                        for (int i = 1; i <= tempTable.Rows.Count; i++)
                        {
                            // Get Grid's Label values
                            var EmpID =
                                (Label)grdEmp.SelectedRow.FindControl("lblEmpID");
                            var firstName =
                                (Label)grdEmp.SelectedRow.FindControl("lblFirstName");

                            var date = DateTime.Now.ToString();                

                            var planID =
                                (Label)grdPlanID.Rows[rowIndex].Cells[1].FindControl("lblPlanID");

                            // Create new row and update Row Number
                            tempRow = tempTable.NewRow();

                            tempTable.Rows[0]["Emp_ID"] = EmpID.Text;
                            tempTable.Rows[i - 1]["First_Name"] = firstName.Text;
                            tempTable.Rows[i - 1]["Created_Time"] = date;
                            tempTable.Rows[i - 1]["Plan_ID"] = planID.Text;

                            rowIndex++;
                        }

                        // Add data to datatable and viewstate
                        tempTable.Rows.Add(tempRow);
                        ViewState["TempTable"] = tempTable;

                        // Attach Gridview Datasource to datatable
                        grdList.DataSource = tempTable;
                        grdList.DataBind();
                    }
                }

                //Set Previous Data on Postbacks
                SetPreviousData();
     }
private void SetInitialRowToGrid()
    {
        // Initialize and Set initial row of Datatable
        var tempDataTable = new DataTable();
        tempDataTable.Columns.Add("Emp_ID");
        tempDataTable.Columns.Add("First_Name");
        tempDataTable.Columns.Add("Created_Time");
        tempDataTable.Columns.Add("Plan_ID");
        tempDataTable.Rows.Add("1", "", "", "");

        // Store that datatable into viewstate
        ViewState["TempTable"] = tempDataTable;

        // Attach Gridview Datasource to datatable
        grdList.DataSource = tempDataTable;
        grdList.DataBind();
    }
private void SetPreviousData()
    {
        int rowIndex = 0;

        if (ViewState["TempTable"] != null)
        {
            var tempTable = (DataTable)ViewState["TempTable"];

            if (tempTable.Rows.Count > 0)
            {
                for (int i = 0; i < tempTable.Rows.Count; i++)
                {
                    var EmpID =
                        (Label)grdEmp.SelectedRow.FindControl("lblEmpID");
                    var firstName =
                        (Label)grdEmp.SelectedRow.FindControl("lblFirstName");

                    var date = DateTime.Now.ToString();

                    var planID =
                        (Label)grdList.Rows[rowIndex].Cells[1].FindControl("lblPlanID");

                    EmpID.Text = tempTable.Rows[i]["Emp_ID"].ToString();
                    firstName.Text = tempTable.Rows[i]["First_Name"].ToString();
                    date = tempTable.Rows[i]["Created_Time"].ToString();
                    planID.Text = tempTable.Rows[i]["Plan_ID"].ToString();

                    rowIndex++;
                }
            }
        }
    }
private void SetPreviousData()
{
int rowIndex=0;
如果(ViewState[“诱惑”]!=null)
{
var TENTABLE=(数据表)视图状态[“TENTABLE”];
如果(tetrable.Rows.Count>0)
{
for(int i=0;i
您在调试模式下看到您的
可诱惑的
行了吗?@vallabha-yes-data在那里。。。我可以看到。
grdList
是您要逐个追加行的第三个网格吗?@vallabha是的,您是正确的…在将数据源分配为
grdList.datasource.Clear()
dataGridView1.datasource=null