2010-11-28 111 views

回答

4

喜歡的東西:

var grid = ...; // Your grid. 

var button = new Ext.Button({ 
    text: 'Delete row', 
    handler: function() { 
     var record = grid.getSelectionModel().getSelected(); 

     if (record !== undefined) { 
      grid.store.remove(record); 
     } 
    } 
}); 

如果您希望您的數據真正被刪除,電網應該使用遠程存儲加載和從實際的數據存儲中刪除數據。下面意味着只有局部變化:

proxy: new Ext.ux.data.PagingMemoryProxy(myData), 

你可以嘗試移除,並把

url: 'http://localhost/path/to/get/data' 

參考文檔的詳細信息:http://dev.sencha.com/deploy/dev/docs/?class=Ext.data.Store

+0

你的想法很好,但我想用現金工作,我不想每次都重新加載數據庫,我刪除了一個產品。我也有一個功能,點擊從我的數據庫刪除行,但我不想重新加載數據庫。如果你有10-20個產品,那麼OK,但是如果你有10.000 ... – cosy 2010-11-29 00:37:28

1

如果通過這個例子的來源看,它正在加載來自硬編碼陣列的數據:

Ext.onReady(function(){ 

     var myData = [ 
       ['3m Co',71.72,0.02,0.03,'9/1 12:00am'], 
       ['Alcoa Inc',29.01,0.42,1.47,'9/1 12:00am'], 
       ['Altria Group Inc',83.81,0.28,0.34,'9/1 12:00am'], 
       // ... 
       ['Verizon Communications',35.57,0.39,1.11,'9/1 12:00am'], 
       ['Wal-Mart Stores, Inc.',45.45,0.73,1.63,'9/1 12:00am'] 
     ]; 

myData在每次頁面加載時都從該靜態定義重新創建,所以這就是爲什麼更改不會在刷新之間持續存在。

您需要編寫兩個服務器端腳本(例如PHP腳本)。一個以JSON或XML格式輸出未刪除記錄的數據。另一個通過ID從數據庫中刪除記錄。

這裏是一個教程,涵蓋編寫「getter」PHP腳本和相應的Ext JS代碼,用於在技術產品上顯示數據網格:http://www.devarticles.com/c/a/JavaScript/EXT-JS-Passing-Live-Data/。這隻涵蓋了第一個腳本(從數據庫中檢索數據並以JSON格式輸出數據的腳本),但它應該能夠幫助您。使用向第二個腳本(通過ID從數據庫中刪除記錄的腳本)發出AJAX請求的函數,重寫商店的remove回調。

0

這是解決方案myData.splice(1,1);