2013-01-19 58 views
0

我有一個DropDownList和方法OnSelectedIndexChanged事件更改一個標籤的內容。除了DropDownList的第一個元素外,它工作正常。有任何想法嗎?OnSelectedIndexChanged事件不會觸發DropDownList的第一個元素

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 
using Newsletter.DAL; 
using Newsletter.Services; 

public partial class Senders : System.Web.UI.Page 
{ 
    private SenderService _client; 
    private List<Sender> _allSenders; 
    private DropDownList _dropDownListSenders; 
    private TextBox _emailBox; 
    private string _selectedSender; 

    protected void Page_Load(object sender, EventArgs e) 
    { 
     _client = new SenderService(); 
     _allSenders = _client.GetAllSenders(); 
     _dropDownListSenders = (DropDownList)loginViewMain.FindControl("DropDownListSenders"); 
     _emailBox = (TextBox)loginViewMain.FindControl("textBoxEmail"); 
    } 

protected void DropDownListSenders_SelectedIndexChanged(object sender, EventArgs e) 
    { 
     _selectedSender = _dropDownListSenders.SelectedValue; 
     _emailBox.Text = _selectedSender; 
    } 
} 
+1

嘗試在DDL上將「AutoPostback」設置爲true。 – keyboardP

+1

看到http://stackoverflow.com/questions/8699163/first-item-in-dropdownlist-doesnt-fire-selectedindexchanged-at-all –

回答

1

在第一項之前是否有'空'項?如果不是,則選擇第一個項目不會更改所選索引(第一個項目已被選中),並且該事件不會觸發。

1

我加ViewStateMode="true"DropDownList現在它工作正常。

+1

ViewStateMode =「啓用」應該有,沒有「真」 –

0

您的第一個元素已被選中,這就是爲什麼當您再次選擇第一個元素時,OnSelectedIndexChanged將不會觸發,因爲您沒有更改元素。
OnSelectedIndexChanged只會在您選擇的元素髮生變化時觸發。

+0

和我們又該這樣做? –

0

請檢查您的第一個項目,如果它設置爲空字符串(即string.Empty)。如果是,則將其設置爲null。這應該可以解決您的問題。

問題與空字符串: - 事件不考慮將空字符串更改爲新的更改。而如果將其設置爲null,則表示null已更改爲字符串值。 希望這有助於!快樂編碼...

+0

請嘗試使用代碼提供工作解決方案 – Mostafiz

相關問題