2011-11-13 144 views
0

我有一個javascript函數來清除我的表單,其中包括一個gridview,我以前試過另一種方式來刪除沒有回發的行,但不知何故,當我試圖添加一個新行時,所有以前的反彈。也許我正在使用viewstate來維護我的gridview,不太確定,但下面是我正在做的工作,但不知何故,它只刪除了一行,我猜可能當回發發生時,循環被清除。有什麼建議?我需要循環來刪除我所有的gridview行。謝謝!使用Javascript刪除Gridview行

for (i = 0; i < camGv.rows.length; i++) { 
       window.__doPostBack('ctl00$cphBody$gvCamVoucher', 'Delete$0'); 
      } 
+0

我可以知道你如何綁定你的網格視圖,你直接添加行或只是將其綁定到數據表?我有一個答案給你,但請我需要更多的解釋 – Marwan

+0

嗨,感謝您的幫助,我將它綁定到數據表。 – k80sg

回答

0

感謝您的回答,我清除代碼背後的gridview的行,並使用更新面板,以組網格所以回發不會以任何方式影響我的其他領域。

3

嗯,我想你需要兩件事情

1-辦法從網格刪除您在行客戶端

2-方式,使在服務器端是缺失的影響以防萬一你做任何回發 留在你的刪除狀態

1-你可以在客戶端使用id捕獲網格視圖,並清除所有內部的執行,如果有一個頁腳有這樣的分頁代碼

document.getElementById('grid view id').getElementsByTagName('TBODY').innerHTML=''; 

這一行腳本刪除所有行那,如果你沒有一個頁腳電網尋呼機

2 - 你必須做出一個Ajax調用,如果該表與服務器聯繫,使真正的效果是從數據庫中有一些東西,我認爲你需要一個刪除函數來刪除數據庫中的所有行,如果這只是一個臨時表,與數據庫無關,所以我建議把它放在一個你可以訪問的Session中在阿賈克斯電話會議

JavaScript

$.ajax({ 
     type: "POST", 
     //web method path 
     url: "pageName.aspx/webmethodName", 
     data: "{action:'delete'}", 
     contentType: "application/json; charset=utf-8", 
     dataType: "json", 
     async: true, 
     cache: false, 
     success: function(result) 
      { 
      } 
     ,error: function(error) 
      { 
      } 
}); 

ASP.NET CS

[WebMethod] 

public string DeleteAll(string action) 
{ 
//you have to put the table from the begining where ever you initialize the data on it inside a session 
DataTable dt = (DataTable)HttpContext.Current.Session["tbl"]; 
dt.Rows.Clear(); 
HttpContext.Current.Session["tbl"]=dt; 
} 

問候 請任何問題問我:)

+0

請告訴我,你需要的答案或你做了其他事情,因爲如果有別的東西請給我描述給你更多的幫助 – Marwan