2013-07-30 166 views
0

在ASP.NET 2.0 Web應用程序中,第一列中包含一個包含複選框的gridview。 當勾選複選框Header Checkbox或Row Checkbox時,OnCheckChange事件會在服務器端觸發。在這種情況下,特定行數據或所有行數據(在標題複選框的情況下)被添加到會話中的數據表中以供進一步處理。除此之外,它還會調用幾個JavaScript函數來檢查/取消選中複選框,突出顯示客戶端的行。立即從客戶端向服務器端發送gridview數據

如果用戶想檢查多個複選框但不通過標題複選框。這是行爲錯誤。如果用戶快速選中該複選框,則幾個複選框會被選中,並且很少有複選框未被選中。 我猜是因爲在每個OnCheckChange事件中都有一個到服務器端的請求,然後是一些js方法,所以需要時間,但是在請求完成之後,用戶選中了下一個複選框,並且它沒有被實際檢查。

有什麼辦法,我可以讓用戶檢查他/她想檢查多少個複選框,然後將它們發送到服務器以存儲在數據表中?

建議表示讚賞。

+0

OnCheckChange在服務器上觸發時是否使用AJAX? –

+0

是的。 Ajax用於應用程序中。 –

回答

1

您應該爲這種功能添加加載程序。我希望你應該使用更新面板。您可以爲正在服務器端處理的時間請求添加更新進度控制。它會提示用戶等待。你也可以使用jQuery的ajax請求做類似的工作。

+0

我已經在使用與更新面板關聯的更新進度控制。我正在做的是在InitializeRequest()函數中禁用gridview並在其上顯示圖像(加載符號),並在EndRequest()函數中將其恢復到正常狀態。這些函數是:var prm = Sys.WebForms.PageRequestManager.getInstance(); prm.add_initializeRequest(InitializeRequest); prm.add_endRequest(EndRequest); –

+0

但仍然存在問題 –

+0

您應該嘗試使用Jquery ajax請求而不是更新面板,因爲它的性能比通過jquery調用ajax要慢。通過這種方式,您可以在請求正在進行時禁用客戶端的其他複選框。你可以擁有的其他東西是有一個div元素,頁面的最大高度和寬度的高度和寬度,並使用加載器可見。我相信它會解決問題。 – JSHunjan

相關問題