为什么无法在asp.net中获得正确的dropdownlist值

时间:2012-10-11 07:18:19

标签: c# asp.net html

我在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;           
    }

逻辑非常简单。获取下拉列表的选定值并将其传递给lbl.text。

但问题是无论我如何尝试,文本都会在下拉列表中显示列表的第一个值而不是选定的值。

我注意到每次单击按钮时页面都会刷新。

请帮忙。

BTW,我有以下事件绑定:

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);

        }

2 个答案:

答案 0 :(得分:7)

你必须为

中的下拉列表进行绑定
if (!Page.IsPostBack)

否则它将在每次回发时重新构建下拉列表的项目 因此,只返回新集合中当前选定的项目 - 这是第一个。

看起来你也错过了按钮上的btnSmt_Click - 但你可能已将它设置在其他地方......

答案 1 :(得分:0)

你先调试了这个???因为C#代码似乎是正确的。

尝试更改此内容:

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

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

如果您的代码确实存在,那么您的点击事件将永远不会被捕获,因此如果您在C#代码中放置一个断点,您会看到该动作未被触发。

无论如何,希望它有所帮助