2012-10-19 229 views
0

我在更新後無法讓我的gridview刷新。數據庫接受更新,當我手動刷新頁面時,我可以在那裏看到它們,但當我單擊更新鏈接提交更改時,不會。更新後刷新gridview

我試圖調用填充網格的函數,我收到一個js錯誤「Microsoft JScript運行時錯誤:無法獲得屬性'firstChild'的值:對象爲null或undefined」。 它通過該方法運行,不會拋出該錯誤,直到它退出。

是否有另一種方法可以在更新後刷新我的網格?

下面是代碼:

protected void Page_Load(object sender, EventArgs e) 
    { 
     if (!IsPostBack) 
     { 
      BindCustodiansByProjectID(); 
      BindCustodianMedia(EditMediaClass.outRequestMediaID); 
     } 
    } 

     private void BindCustodianMedia(string MediaID) 
    { 
     DataTable dt = new DataTable(); 
     SqlConnection conn = new SqlConnection(GetConnString()); 
     DataSet ds = new DataSet(); 
     try 
     { 
      conn.Open(); 
      SqlCommand cmd = new SqlCommand("usps_displayEditMedia_CustodianMedia", conn); 
      cmd.CommandType = CommandType.StoredProcedure; 
      cmd.Parameters.Add(new SqlParameter("@aspMediaID", SqlDbType.Int)).Value = int.Parse(MediaID); 
      cmd.ExecuteNonQuery(); 

      SqlDataAdapter da = new SqlDataAdapter(cmd); 

      da.Fill(ds); 

      grd_custodianMedia.DataSource = ds; 
      grd_custodianMedia.DataBind(); 
     } 

     protected void updateCustodianMedia_OnUpdateCommand(object sender, GridRecordEventArgs e) 
    { 
     SqlConnection conn = new SqlConnection(GetConnString()); 
     conn.Open(); 
     try 
     { 
      SqlCommand cmd = new SqlCommand("usps_updateCustodianMedia_EditMedia", conn); 
      cmd.CommandType = CommandType.StoredProcedure; 

      cmd.Parameters.Add(new SqlParameter("@aspCustodianMediaID", SqlDbType.Int)).Value = int.Parse(e.Record["CustodianMediaID"].ToString()); 
      cmd.Parameters.Add(new SqlParameter("@aspMediaID", SqlDbType.Int)).Value = int.Parse(EditMediaClass.outRequestMediaID.ToString()); 
      cmd.Parameters.Add(new SqlParameter("@aspCustodianID", SqlDbType.Int)).Value = int.Parse(e.Record["CustodianID"].ToString()); 
      cmd.Parameters.Add(new SqlParameter("@aspUploadPath", SqlDbType.VarChar)).Value = e.Record["UploadPath"]; 
      cmd.Parameters.Add(new SqlParameter("@aspDataSize", SqlDbType.VarChar)).Value = e.Record["DataSize"]; 
      cmd.Parameters.Add(new SqlParameter("@aspDataDesc", SqlDbType.VarChar)).Value = e.Record["DataDescription"]; 

      cmd.ExecuteNonQuery(); 
      //BindCustodianMedia(EditMediaClass.outRequestMediaID);  

     } 
+0

您將不得不張貼您的代碼,通過jscript錯誤是瀏覽器指出錯誤,而不是您的服務器端代碼。重新綁定網格只需獲取數據(通過數據集或數據表),並將其設置爲您的gridview的數據源屬性。這個效果如下:'Dataset ds = GetMyData(); myGridView.DataSource = DS; myGridView.DataBind();' – JonH

+0

刷新網格後,您需要重新綁定網格。 – 2012-10-19 14:41:21

+0

你正在做什麼??請發佈您的代碼。 – LearningAsp

回答

0

對於JavaScript錯誤,請嘗試用Firebug或IE開發者工具進行調試,並找出到底是哪行是造成你的問題。您正嘗試從一個空對象訪問屬性「firstchild」。有了這些信息,很難分辨哪個可能是確切的問題。