2012-09-21 60 views
0

我知道有關於此問題的類似問題(例如,herehere),但沒有一個結果對我的問題有幫助。保存包含在一個ASP列表中的複選框的檢查狀態

我有一個ListView控件,顯示在數據庫中註冊的所有用戶,並且如果用戶被批准或沒有顯示每個用戶顯示的複選框,並且我希望在CheckBox的Checked屬性更改時直接保存更改。

我知道在ListView_ItemDataBound上添加事件處理程序是不正確的,因爲在CheckBox的AutoPostback之後沒有新的綁定,因此事件處理程序會丟失。另一方面,我不能直接在ASPX文件上追加方法,因爲這樣我無法知道哪個用戶受到更改的影響(至少我認爲我不能)。

任何消化?

非常感謝

回答

1

您有幾個選項。

可能會觸發ListView.ItemCommand事件。但我不確定,因爲文檔只是指定按鈕。你可能想要試驗。

另一種選擇是利用ListView.ItemCreated命令。我相信這總是運行,不管ListView是否綁定,因爲該項目總是必須被創建,即使它來自ViewState。在事件的事件處理程序中,你會做的事情是將事件處理程序附加到CheckBox ClickCheckChanged事件(我忘記了CheckBox狀態更改事件的服務器端名稱)。

+0

看來你的第一種方法是行不通的。事實上,ListView.ItemCommand事件不會因爲CheckBox的CheckedChanged而拋出。 – adripanico

+0

第二個選項有效!我可以從'ListView.ItemCreated'中添加處理程序。現在唯一的問題是如何知道哪個用戶對應'CheckBox'(我可以使用'Text'屬性,但它顯示屏幕上的文本,我不想這樣做)。 – adripanico

1

所以我遇到了同樣的問題。我很好奇,在你的頁面加載你檢查,如果它的回傳?

if(!Post.IsPostBack){ 
//normal page load 
} 

如果你沒有這個檢查,它會調用你的頁面加載邏輯,在我的情況下,它每次都用我的數據對象重置複選框。

+0

我不明白你的問題。 – adripanico