2015-10-30 45 views
-1

我在3个不同的更新面板中有3个gridview,我在RowCommand之后更新它们。在调用数据绑定后Gridview没有更新

GridView1.DataBind(); 
GridView2.DataBind(); 
GridView3.DataBind(); 

奇怪的是只有GridView1_RowCommand可以更新所有三个gridview。 GridView2_RowCommand使用相同的方法,但我不能更新gridview。 请帮帮我。

在此先感谢。

这里是Rowcommand代码:

protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e) 
{ 
    //check the commandName 
    if (e.CommandName != "SaveStartTime") 
     return; 

    int rowIndex = int.Parse(e.CommandArgument.ToString()); 
    string id = GridView1.Rows[rowIndex].Cells[0].Text; 

    Label time = GridView1.Rows[rowIndex].Cells[4].FindControl("ActualTimeStart") as Label; 
    time.Text = DateTime.Now.ToString("HH:mm"); 

    var Cn = new System.Data.SqlClient.SqlConnection(); 
    Cn.ConnectionString = "Server=.\\SqlExpress;Database=CMOS;Trusted_Connection=True"; 

    Cn.Open(); 

    var Cm = Cn.CreateCommand(); 

    string store = string.Format(@"UPDATE [ApprovedExitPass] SET ActualTimeStart = '{0}' WHERE Id='{1}'", time.Text, id); 
    SqlCommand cmd = new SqlCommand(store, Cn); 

    cmd.Parameters.AddWithValue("@ActualTimeStart", time.Text); 
    cmd.ExecuteNonQuery(); 
    Cn.Close(); 
    GridView1.DataBind(); 
    GridView2.DataBind(); 
    GridView3.DataBind(); 
} 

protected void GridView2_RowCommand(object sender, GridViewCommandEventArgs e) 
{ 
    //check the commandName 
    if (e.CommandName != "SaveReturnTime") 
     return; 

    int rowIndex = int.Parse(e.CommandArgument.ToString()); 
    string id = GridView2.Rows[rowIndex].Cells[0].Text; 
    Response.Write(id); 
    Label time = GridView2.Rows[rowIndex].Cells[4].FindControl("ActualTimeArrive") as Label; 
    time.Text = DateTime.Now.ToString("HH:mm"); 
    var Cn = new System.Data.SqlClient.SqlConnection(); 
    Cn.ConnectionString = "Server=.\\SqlExpress;Database=CMOS;Trusted_Connection=True"; 

    Cn.Open(); 

    var Cm = Cn.CreateCommand(); 

    string store = string.Format(@"UPDATE [ApprovedExitPass] SET ActualTimeArrive = '{0}' WHERE Id='{1}'", time.Text, id); 
    SqlCommand cmd = new SqlCommand(store, Cn); 

    cmd.Parameters.AddWithValue("@ActualTimeArrive", time.Text); 
    cmd.ExecuteNonQuery(); 
    Cn.Close(); 
    GridView1.DataBind(); 
    GridView2.DataBind(); 
    GridView3.DataBind(); 
} 
+0

获得价值请添加更多的代码,包括'GridView1_RowCommand'。 –

+0

根据你发布的内容很难确定你所看到或看不到的内容。请编辑此问题并发布所有相关的代码,方法和事件。 – MethodMan

+0

我更新了代码。两个使用相同的更新方法,但只有'GridView1_RowCommand'可以更新所有3个gridview。 – Wen21

回答

0

YESgridview1_rowcommand将更新所有三个,因为如果你看到gridview1_rowcommand。在该方法中,你还呼吁其他两种GridView的的数据绑定。所以现在为什么只有在调用gridview1_rowcommand时才会发生这种情况,因为您可能正在调用第一个网格行命令或其他一些问题。

所以大概确定您是否在Response.write(id)