2010-12-21 73 views
0

我遇到了一些小問題,我正在處理一些ASP.Net代碼。爲了簡單起見,我們可以說我有兩個dropdownlists,一個充滿各種項目,另一個充滿其他項目,但基於第一個下拉列表中的選定項目。我目前將變量設置爲隱藏的輸入,以檢查第一個下拉列表中的項目是否發生了更改,並且是否必須更改第二個下拉列表,但是我還需要檢查以確保如果其他事件導致回發到NOT重新填充第二個下拉列表,使其不會丟失用戶當前選擇的內容。此檢查還可以確保當我離開頁面時,正確的值被選中,而不是由回發重新填充代替。根據其他值填充下拉列表的正確方法?

我是ASP.Net/HTML/CSS/Javascript之類的新手。我知道,雖然我的工作,它甚至不是做事的正確方法。請幫助我糾正我的方式並找出解決當前問題的最佳方法。一些不錯的ASP.Net教程網站也不錯,因爲我需要不斷提高自己的技能。

+0

您是否使用.net事件來執行此操作?你在實施這個網站的規模是什麼? – 2010-12-21 06:09:55

+0

我正在加載第一個ddl的Page.Load事件,但等到Page.PreRender填充第二個ddl。不是最好的(因此我的問題),但我現在剛剛加入而不是在底層。不知道你的規模是什麼意思,但每天不會有太多的點擊,也許500. – Crag 2010-12-21 17:07:50

回答

1

一些例子嘗試自動回真與選定的指數變化事件:

<asp:DropDownList ID="DropDownList1" AutoPostBack="true" OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged" runat="server" /> 
<asp:DropDownList ID="DropDownList2" runat="server" /> 

而且具有事件填充第二個下拉:

protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e) 
{ 
} 

編輯 那麼,如果你需要它從第一頁的負載來填充你可以做以下,或更好的做出方法這是從頁面加載和選定的索引更改,這將填充您的下拉列表中調用。

if (!Page.IsPostBack) 
{ 
    DropDownList1_SelectedIndexChanged(DropDownList1, EventArgs.Empty); 
} 
+0

這似乎是可行的,除非事實上,當頁面加載的時候沒有被調用第一次。但我敢打賭,一些亂七八糟的東西,並檢查MSDN頁面@astander提供這將是我的解決方案。 – Crag 2010-12-21 17:05:30

+0

更新的答案建議解決這個問題。 – CRice 2010-12-21 23:12:54