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