2011-12-20 71 views
0

也許這是對異步回傳的無知,所以讓我在這裏放出壘球。在更新面板外重新生成下拉菜單

我在updatepanel中有三個級聯下拉列表,使用這些下拉列表可以選擇您的Store-> Department-> Product。第四個DDL位於updatepanel之外,並使用它來選擇您的競爭對手。不同的商店與不同的競爭者相匹一個gridview(也在外面)顯示Store-> Department-> Product-> Competitor Price的連接。

當您第一次加載並切換到具有相同競爭對手的不同商店時,此功能正常。但是,如果將更新面板DDL更改爲不共享所選競爭對手的商店,並單擊「顯示」(導致回發),則會出現「無效回傳或回調參數」。如果我刪除競爭對手DDL並對gridview的競爭對手進行硬編碼,那麼錯誤消失,我可以放棄導航。

爲什麼第四個DDL不會在回發中重新填充?我該如何解決這個問題?

+0

請張貼您的代碼。沒有你的實際實施,它很難評論。 – Akhil 2011-12-20 01:50:48

回答

0

原因是在後一種情況下更改Store-> Department-> Product(如果您正在重新綁定競爭對手DropDownlist,則ListItems將在服務器上更改,但不會呈現給客戶端,因爲它不在任何內部updatepanel,因此Competitior DropDownlist具有舊值。

發生回發時ASP.Net不會理解這些舊值如何來並將拋出「無效回發或回調參數」錯誤。

解決此問題的最佳方法是將您的dropdownlist(和gridview)放入updatepanel中。

+0

輝煌,像魅力一樣工作! – ScottieB 2011-12-20 23:48:38

+0

@ScottieB:不客氣:) – 2011-12-21 05:05:00