我已經設置了一個DataGrid,其中包含多個列,並在該行的末尾添加了複選框和列。DataGrid按鈕 - 回發或回調無效
我也在更改OnItemCreated
事件上的數據網格佈局,該事件通過使用「Rowspan」屬性擴展行來更改數據網格的佈局,並刪除不再需要的額外列和控件。
原始數據網格佈局是設置這樣的:
___________________________________________
| 1 | Employee Name | 01/08/10 |[] |[SAVE]|
| 1 | Employee Name | 02/08/10 |[] |[SAVE]|
___________________________________________
| 2 | Employee Name | 01/08/10 |[] |[SAVE]|
___________________________________________
| 3 | Employee Name | 04/08/10 |[] |[SAVE]|
| 3 | Employee Name | 05/08/10 |[] |[SAVE]|
| 3 | Employee Name | 06/08/10 |[] |[SAVE]|
___________________________________________
| 4 | Employee Name | 03/08/10 |[] |[SAVE]|
___________________________________________
而現在它看起來像這樣具有擴展行,去掉了控件和數據網格列刪除...
___________________________________________
| 1 | Employee Name | 01/08/10 |[] |[SAVE]|
| | | 02/08/10 | | |
___________________________________________
| 2 | Employee Name | 01/08/10 |[] |[SAVE]|
___________________________________________
| 3 | Employee Name | 04/08/10 |[] |[SAVE]|
| | | 05/08/10 | | |
| | | 06/08/10 | | |
___________________________________________
| 4 | Employee Name | 03/08/10 |[] |[SAVE]|
___________________________________________
的頁面在打開時顯示,並且每次用戶單擊頁碼時,頁面控件都按預期工作。
但是,當我點擊特定員工的[SAVE]按鈕時,錯誤消息顯示類似「無效回傳或回叫」的消息。我知道這是我在數據網格中刪除的控件和列的結果,而事件驗證與原始渲染項目不匹配。
我不想刪除EnableEventValidation,因爲這是一個安全問題。
我知道我必須使用Render方法來修復在頁面顯示之前所做的任何更改,但是如何解決此回發問題?
嗨Aristos, 是的,我有一個更新面板中的數據網格,現在已禁用EnableViewState。該按鈕現在可以正常工作,並且可以按預期方式讀取複選框的值。 但是,無論我處於哪個頁面,頁面編號都會重置回第1頁。如果我現在無法從數據網格中檢索視圖狀態的值,我該如何獲取頁碼? 謝謝。 – 2010-08-08 22:49:08
@laughing無法保持頁面與讀取數據的地方有關 - 您要執行Bind()並在datagrid上設置數據。你在尋呼機之後有地方,所以失去它。改變你在datagrid上設置數據的點,例如在pageinit上移動它並檢查它。這可能是一開始就存在的問題。 – Aristos 2010-08-09 05:34:57
我改變了重新綁定數據的位置,並且數據網格按預期工作。 – 2010-08-10 03:21:45