2012-02-20 13 views
3

早上好,ASP.NET - 檢測中繼器中的更改值?

我有一個帶中繼器的頁面。中繼器通常包含250-500行。

ItemTemplate包含5個TextBox控件和1個DropDownList。用戶可以修改任何這些值。

修改一個或多個值(一行或多行)後,用戶將點擊'保存'按鈕。此時我想更新數據庫 - 但首先我需要確定已更改的行。

我已經試驗了TextBox.TextChange事件......但是我有5個TextBox控件每行...我不想更新同一個項目五次...所以我正在尋找更好的東西。

如果有一個RepeaterItem.SomeValueChanged事件會很好......但到目前爲止我還沒找到一個! :-)

任何人都有一個更優雅的解決方案?

謝謝!

格倫

+0

如果您使用'GridView'代替默認包含的'Repeater'控件... – balexandre 2012-02-20 14:52:05

+0

@balexandre,你確定嗎? – 2012-02-20 15:12:20

+0

@balexandre - 我確定有其他(也許更好)的方法來實現這一點(將來我們可能會嘗試DataGridView),但現在我正在尋找一種使用Repeater實現這一點的方法。謝謝! – 2012-02-20 15:18:00

回答

0

有一個隱藏字段,以反映的值會告訴你事情有了變化。初始數據綁定將其值設置爲0.爲文本框佈線一些js,以便他們用1更新隱藏字段。然後在btn保存事件中,您只需要僅對那些具有1的項目感興趣。

+0

我實際上需要比較每個控件(TextBox/DropDownList)的BEFORE和AFTER值...所以這不適用於我。然而,我並沒有清楚地說明原來的問題(我應該),我認爲你的建議很有意義,所以我將你的建議標記爲'已接受'的答案。感謝您花時間閱讀我的問題並提供解決方案! – 2012-02-20 16:37:25

+0

這可能是個不錯的主意,但是u cn在視圖狀態下存儲列表。 T類應該標記爲可序列化 – deostroll 2012-02-20 16:47:32