Asp.net 通过页面导航aspx.net保持数据表的存在
我有一个数据表,它是动态创建的,并绑定到网格视图,页面上有一个按钮,当用户点击时,该按钮会在另一个页面上重定向用户。这是第一页。现在,当用户在第2页被重定向时,如果他想回到第1页,我想在页面加载时显示数据表。一些示例代码如何做到这一点 第1页Asp.net 通过页面导航aspx.net保持数据表的存在,asp.net,Asp.net,我有一个数据表,它是动态创建的,并绑定到网格视图,页面上有一个按钮,当用户点击时,该按钮会在另一个页面上重定向用户。这是第一页。现在,当用户在第2页被重定向时,如果他想回到第1页,我想在页面加载时显示数据表。一些示例代码如何做到这一点 第1页 protected void Page_Load(object sender, EventArgs e) { dtCurrentTable = (DataTable)ViewState["Markici"]; GridView2.DataS
protected void Page_Load(object sender, EventArgs e)
{
dtCurrentTable = (DataTable)ViewState["Markici"];
GridView2.DataSource = dtCurrentTable();
GridView2.DataBind();
}
public void Button2_Click(object sender, EventArgs e)
{
Response.Redirect("Page2.aspx");
}
//method for insert dataTable in database
public void Button2_Click(object sender, EventArgs e)
{
dtCurrentTable = (DataTable)ViewState["Markici"];
Session["Markici"] = dtCurrentTable;
dtCurrentTable = (DataTable)Session["Markici"];
GridView2.DataSource = dtCurrentTable;
GridView2.DataBind();
SqlCommand cmd = new SqlCommand("InsertMarkica",conn);
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = "InsertMarkica";
foreach (DataRow dr in dtCurrentTable.Rows)
{
cmd.Parameters.Clear();
//SqlCommand cmd = new SqlCommand(cmdstr, conn);
cmd.Parameters.AddWithValue("@FirmaID", dr["FirmaID"]);
cmd.Parameters.AddWithValue("@Godina", dr["Godina"]);
cmd.Parameters.AddWithValue("@Kasa", dr["KasaID"]);
cmd.Parameters.AddWithValue("@Masa", dr["Masa"]);
cmd.Parameters.AddWithValue("@MarkicaID", dr["MarkicaID"]);
cmd.Parameters.AddWithValue("@Datum", dr["Datum"]);
cmd.Parameters.AddWithValue("@VrabotenID", dr["VrabotenID"]);
cmd.Parameters.AddWithValue("@Smena", dr["Smena"]);
cmd.Parameters.AddWithValue("@VkIznos", dr["VkIznos"]);
cmd.Parameters.AddWithValue("@VkDanok", dr["VkDanok"]);
cmd.ExecuteNonQuery();
cmd.Connection = conn;
}
第2页
public void Button2_Click(object sender, EventArgs e)
{
Reponse.Redirect("Page1.aspx");
//Now when is redirected on page1, it should be present data Tale,
//needed that data Table for inserting records in database
}
您可以创建一个会话变量,如下所示
protected void Page_Load(object sender, EventArgs e)
{
dtCurrentTable = (DataTable)ViewState["Markici"];
Session["Markici"]=dtCurrentTable;
GridView2.DataSource = dtCurrentTable();
GridView2.DataBind();
}
dtCurrentTable = (DataTable)Session["Markici"];
当前会话中的任何页面上都不能使用会话[“Markici”]
的值。您需要按如下方式进行转换和使用
protected void Page_Load(object sender, EventArgs e)
{
dtCurrentTable = (DataTable)ViewState["Markici"];
Session["Markici"]=dtCurrentTable;
GridView2.DataSource = dtCurrentTable();
GridView2.DataBind();
}
dtCurrentTable = (DataTable)Session["Markici"];
您可以使用
Session
来保存数据。例如,我不知道如何做。请在问题中添加一些代码,以便可以相应地更改。Session[“someKey”]=myDataTable-请注意,DataTable是重对象。但请记住,会话可能会在配置文件中的预定义值或设置值(默认值为20分钟)后过期,现在当我尝试在数据库中插入该数据表时,它会给我一个错误:“无法将值NULL插入列'FirmaID',表'KasaEP.dbo.Markici';列不允许空值。插入失败。声明已终止。“”“所有列都有值,我无法理解为什么它会给我这个错误OK,所以用户在20分钟内没有返回的内容,会话将过期,用户将丢失表…”。。。