2011-04-07 33 views
1

我在我的頁面中有一個GridView,但我不通過GV添加我的行。通過文本框添加,然後將其顯示給GV。現在的問題是,當我點擊ADD按鈕時,我的GV沒有顯示更新的行。如果我在菜單欄上單擊該頁面,則整個頁面將刷新,並且可以看到我更新的GV。GridView添加一行時不刷新:嘗試Databind()

這裏是模擬了我ADD_Click()事件:

protected void btnAdd_Click(object sender, EventArgs e) 
    { 
         var td = from s in cv.Test1 
           join r in dt.Test2 on s.ID equals r.ID 
           where s.Col1 == ColumnName 
           select s; 

         gvShowComm.DataSource = td; 
         gvShowComm.DataBind(); 

        } 

        catch (Exception err) 
        { 
         //Nothing!!! 
        } 
      } 

      else 
      { 
       MessageBox.Show("Please Enter Entry for the textboxes!"); 
      } 
     } 

現在,當我加入的記錄,GridView控件沒有顯示更新的記錄。誰能告訴我發生了什麼事?

謝謝!

回答

2

您應該驗證的第一件事是您的td對象具有您期望的正確數量的行。 GridView應該正確綁定到該對象,所以我的直覺是你的結果td是缺少該行。

你是如何「添加」行?你是先保存到數據庫然後運行你的linq調用?從上面的代碼中,它看起來像你調用一些linq來獲取結果,但沒有任何內容顯示你添加了任何會導致結果與初始加載不同的結果。

您添加的僞代碼應該是這樣的:

  1. 保存新行到數據庫
  2. 獲取新的數據
  3. 綁定新的數據到電網

你可以也可以通過獲取舊數據手動完成。在綁定它之前手動添加一行到舊數據(存儲在您的示例中的td),然後在手動添加一行到linq結果後執行綁定。

+0

謝謝!那就像Jem一樣。我沒有拉td :(右) – 2011-04-07 18:11:41