作者CYBASTER (復讎の業火)
看板C_Sharp
標題[問題] [ASP.Net]動態DropDownList只能生效一次
時間Tue Oct 27 22:59:52 2009
各位先進大大好:
小弟用asp.net包裝一個陽春的搜尋引擎,也就是用frame切割為上下框架,
上框架就是讓人輸入檢索詞彙的地方,下框架則是呈現搜尋結果的地方,
現在我企圖做一個分類檢索功能卡關卡一半:
我有一個三個階層的分類架構,寫在access資料庫中,
然後用dropdownlist去databind,
反正選了第一層第二層就會變動,選了第二層第三層就會變動…這樣,
(利用autopostback功能做的)
然後第三層是一個「篩選依據」幫我過濾檢索的類別,
可以想像成「我只想在某個類別中做搜尋」,
因此按下送出查詢按鈕時,我用session變數儲存第三層選單的Text,
然後送給呈現結果的頁面當篩選依據,可是我發現這麼做「只能正確生效一次」,
亦即我在送出這個查詢後,如果再改動下拉式選單,然後第二次送出查詢,
它記錄的仍是我第一次所選擇的類別…
原本我以為是因為session變數到瀏覽器關閉為止都不允許再改動,
所以我改用design pattern的singleton來製造全域變數去記錄我要的那個分類屬性,
想不到仍是得到同樣的結果:只能正確運作一次,
若我重新改動下拉選單的內容再送出,它記錄的仍是第一次使用時的值。
讓我不得不懷疑問題是出在dropdownlist上,
不知有無大大碰過類似的問題,能給予寶貴指點呢?多謝! M(_ _)M
--
子曰:『槍管不清,則禮樂不興。』
~掄語
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 123.193.19.115
推 thirteeen:第2次變數輸出的值有對嗎 10/28 02:37
→ blestadsl:你下面的frame有reload嗎?或是用get方式傳值 10/28 07:04
→ CYBASTER:謝謝兩位回答,第二次變數就是輸出了我第一次的變數值 10/28 23:14
→ CYBASTER:然後因為跨頁參數中有中文字串,所以我先用session傳 10/28 23:15
→ CYBASTER:後來又改成用全域變數(static)去記錄 10/28 23:16
→ CYBASTER:還有,送出查詢按鈕用window.open實作response.redirect 10/28 23:17
→ CYBASTER:但是轉到結果呈現頁面時應該已經呼叫page load? 10/28 23:17