我在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);
}
答案 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#代码中放置一个断点,您会看到该动作未被触发。
无论如何,希望它有所帮助