2008-11-07 50 views
5

我有一個GridView,它允許隨時編輯每列中的每一列中的值。用戶輸入所有更改,點擊保存一次,所有更改均已提交。在沒有DataBind的情況下向GridView添加新行

用戶還必須能夠點擊新建按鈕,在GridView中出現一個新行(是的,它必須顯示在實際的GridView中),輸入他們想要的任何數據,點擊保存並具有所有更改去數據庫。

現在。以下是引發我的用戶案例:用戶到達頁面,對多個現有行進行若干更改,然後需要添加新行,在新行中輸入數據,單擊Save並將所有更改都發送到數據庫。

但是,我看到添加一個新的空行的唯一方法是重新綁定GridView,這意味着它們的所有更改都將丟失。這顯然不好。

所以,我的問題是:有什麼方法可以添加一個新的,空的,可編輯的行到GridView而不必重新綁定GridView?

我能想到的唯一的事情就是,在新按鈕的單擊事件中,將所有數據從GridView中吸出(包括用戶的潛在編輯),將其保存到ViewState(或其他),添加新的行,重新填充網格。對我而言,這看起來有點不好意思,但它應該允許我關閉GridView上的ViewState。

任何想法?

回答

3

就在我的頭上我可以想到兩種選擇。首先是緩存綁定到網格中的原始結果,並且當您需要添加另一行時,將數據行添加到您綁定的數據包,然後將其綁定到網格。如果網格中有更改,則需要更新數據表。一旦完成所有更改並且用戶單擊保存按鈕,您可以遍歷表並使用數據更新數據庫。

它可能看起來像這樣

頁面加載

  • 獲取DB數據並放入表
  • 綁定表到電網
  • 存放在表緩存

當用戶請求一個新行

  • 獲取緩存的數據對象。
  • 更新已更改
  • 添加任何行空行綁定到網格

當用戶保存電網

  • 獲取緩存的對象。
  • 進行最後一組更新
  • 遍歷行和更新數據庫

另一種方式做,這是通過動態創建的網格,但比它的價值給你,這將涉及更努力已經描述。

0

你可以動態地通過JavaScript添加新行,並在保存命令查找新添加的行。這是相當普遍的。

相關問題