4

我在 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。

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

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

请帮忙。

顺便说一句,我有以下事件绑定:

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

        }
4

2 回答 2

8

您必须对下拉列表进行绑定

if (!Page.IsPostBack)

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

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

于 2012-10-11T07:23:41.297 回答
0

首先,您是否调试过这个???因为 C# 代码看起来是正确的。

尝试改变这个:

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

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

如果这确实是您的代码,您的点击事件将永远不会被捕获,因此如果您在 C# 代码中放置一个断点,您会看到该操作没有被触发。

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

于 2012-10-11T07:23:28.370 回答