2013-09-27 41 views
1

我的搜索表單上有幾個asp:dropdownlists。從他們中選擇項目並單擊搜索按鈕後,我將在搜索表單中獲得結果列表。該列表包含可點擊的項目,搜索窗體將替換爲該項目的詳細視圖。在表單容器上方(我可以在搜索和詳細視圖之間導航的位置)上方有標題式導航菜單,其中包含常用菜單項(搜索,添加新項目等)。在哪種情況下,返回表單時,DropDownList將保持其選定值?

想象一下以下情景:我用信息填寫下拉菜單和其他搜索欄並按下搜索按鈕。我得到結果列表。我從列表中打開一個項目以查看詳細視圖。我按下標題式導航菜單上的搜索按鈕返回搜索結果。在我離開結果列表之前,所有結果將保持不變,並且所有搜索參數字段具有相同的值,並且ddl具有與我在搜索時輸入的相同的選定值。 - 這將是完美的場景。但是,相反,其中一個下拉菜單決定不顯示我用於搜索的相同值。它顯示了默認值,當我還沒有使用搜索時,它會在那裏。

有沒有人可以解釋不同的場景,什麼時候不下拉菜單仍然是它的選擇項目,什麼時候它呢?

+0

如何將數據綁定到這些下拉列表?顯示代碼。 –

+0

沒有實際的數據綁定 - 列表將在ascx文件中生成。 ListItems也添加在那裏。 – Marek

回答

0

下拉列表不會保留其選定項目的最常見情況是下拉列表中的內容被反彈並且新數據集中沒有匹配的值與上一組數據一起存在,例如:

在初始頁面加載時,在下拉列表中有一個包含ABC的下拉列表。用戶從下拉列表中選擇B

現在用戶在頁面上執行一個操作(即單擊搜索按鈕),並將頁面回發到服務器。搜索結果使用D,EF填充下拉列表;顯然這些值都與前面選擇的B的值相匹配,因此下拉列表將選擇下拉列表中的第一項,即此時的值D

ViewState被要求保持選定的項目值是一個常見的誤解,但沒有必要實現這種效果,它通常會使它更容易。因此,關閉ViewState並不意味着您無法跟蹤後發之間的所選項目。

閱讀TRULY UNDERSTANDING VIEWSTATE瞭解更多關於如何在您的應用程序中有效使用ViewState的信息。

+0

那個案例,重新選擇的值是使用ddl項目的值還是id?其實,它變得越來越奇怪 - 我有那個ddl中的9個值,只有最後一個不會被重新選擇... – Marek

相關問題