2012-10-11 31 views
4

我有以下代碼在asp.net:爲什麼不能獲得下拉列表的正確的價值在asp.net

<asp:dropdownlist id="ddlApp" runat="server" /> 
<asp:button id="btnSmt" runat="server" Text="Submit" /> 

和後面的代碼:

private void btnSmt_Click(object sender, System.EventArgs e) 
    { 
      lbl.Text = ddlApp.SelectedItem.Value;   
    } 

的邏輯非常簡單。獲取dropdownlist的選定值並將其傳遞給lbl.text。

但問題是,無論我怎麼嘗試,文本顯示在下拉列表中的列表中的第一個值,而不是選定的值。

而且我注意到每次點擊按鈕刷新頁面。

請幫忙。

順便說一句,我有以下事件綁定:

的你調試這個
private void InitializeComponent() 
     {  
      this.btnSmt.Click += new System.EventHandler(this.btnSmt_Click); 
      this.Load += new System.EventHandler(this.Page_Load); 
      this.ddlApp.SelectedIndexChanged +=new System.EventHandler(this.ddlApp_Change); 

     } 

回答

7

你要做的下拉列表綁定在

if (!Page.IsPostBack) 

否則將重新建立在每一個回發的下拉列表中的項目和 因此只回報新集合中的當前選定項目 - 這是第一個。

它也像你錯過了按鈕上的btnSmt_Click - 但你可能已經設置在別的地方...

+0

如果中如何做好招標(Page.IsPostBack!)? – DerekY

+0

http://msdn.microsoft.com/en-us/library/system.web.ui.page.ispostback.aspx'examples'下。插入你的ddlApp.DataBind(); (或者你在做什麼)...... – Thomas

0

首先???導致C#代碼看起來很正常。

嘗試修改此:

<asp:button id="btnSmt" runat="server" Text="Submit" /> 

<asp:button id="btnSmt" runat="server" Text="Submit" OnClick="btnSmt_Click" /> 

如果忠實地爲你的代碼點擊事件就不會被抓,爲此,如果你把一個斷點在你的C#代碼你會看到這個動作沒有被觸發。

不管怎樣,希望它有助於

相關問題