2010-05-11 50 views
1

這個問題可能會令人困惑,我很抱歉。我不確定如何最好地說出它。僅在客戶端刪除jqGrid行,並將已刪除的行發送到表單POST上的ASP.NET MVC

我在一個jQueryUI對話框中使用jqGrid是一個窗體。用戶將使用此表單來創建和編輯事件。

編輯後,用戶可以點擊一個按鈕打開一個對話框,顯示事件保存位置的網格。我想讓他們能夠移除已保存的位置,但我不想立即在服務器上刪除它們,因爲他們可能決定不在主窗體上保存更改。

我想要做的是構建一個數組,其中包含使用默認的刪除導航器刪除按鈕刪除哪些位置的ID。當我確認刪除行時,它想要一個editurl,但我現在不想刪除它們。

有沒有一種很好的方法來跟蹤他們的刪除記錄,然後刪除它們,一旦他們保存事件?我想知道是否應該創建一個服務器端的集合/文件,並在事件本身保存後讀取它;我不知道最好的辦法是什麼。

預先感謝您:)

回答

1

下面是一些你如何能做到這一點的高級指南:

除了使用導航器的刪除按鈕,你可以創建自己的按鈕 - 命名刪除並給它一個自定義事件hander。然後,刪除行時,將其ID添加到已刪除行的數組中,並更新包含所有已刪除行的表單中的隱藏字段。當表單被POST-ed回到服務器時,這個字段可以被用來做實際的刪除。

要將ID保存到隱藏字段,可以使用json2.js中的stringify方法將其寫爲JSON。然後,您需要使用ASP.NET MVC解碼JSON數組以提取ID。

這有幫助嗎?

+0

非常好,謝謝Justin!這可能需要自己的SO問題,但是當使用隱藏字段時,我可以將字段值設置爲所有數組值,還是應該逐個執行(每個數組值爲一個隱藏字段)。我擔心的是我可能會發送大量數據回服務器。不過,我會研究stringify,但是 - 再次感謝:) – Dan 2010-05-11 17:06:13

+0

不客氣,很高興幫助:)我推薦使用'stringify'將字段值設置爲所有數組值。或者,您可能可以動態創建隱藏字段,和/或只有一定數量。但是使用'stringify'是一個簡單和靈活性的完美平衡。 – 2010-05-11 17:13:42

+0

我堅持不使用'stringify'的唯一原因是因爲我有一個自定義模型綁定器,它已經綁定了我所有的東西。不過,這將是值得一看的,因爲我不是創造十億隱藏領域的巨大粉絲:) – Dan 2010-05-11 18:10:44