2015-10-30 5 views
-1

У меня есть 3 gridviews в 3 разных обновлениях, которые я обновляю после RowCommand.Gridview не обновляется после того, как databind называется

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

ДА, gridview1_rowcommand обновит все три, потому что если вы видите gridview1_rowcommand .in этого метода вы звоните в DataBind других двух GridViews также. поэтому теперь почему это происходит только при вызове gridview1_rowcommand, потому что вы, вероятно, можете вызвать команду первой строки сетки или какую-то другую проблему.

SO вероятно Проверьте получать ли значение в Response.write(id)

Смежные вопросы