我有一个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;
}
}
答案 0 :(得分:1)
在第一件商品之前,您有'空'商品吗?如果没有,则选择第一个项目将不会更改所选索引(已选择第一个项目),并且不会触发事件。
答案 1 :(得分:1)
我已将ViewStateMode="true"
添加到DropDownList
,现在效果正常。
答案 2 :(得分:0)
您的第一个元素已被选中,这就是为什么当您再次选择第一个元素时OnSelectedIndexChanged
不会触发,因为您没有更改元素。
只有在您选择的元素发生变化时才会触发OnSelectedIndexChanged
。
答案 3 :(得分:0)
请检查您的第一项是否设置为空字符串(即 string.Empty )。如果是,则将其设置为 null 。这应该可以解决您的问题。
空字符串问题: - 事件不会考虑将空字符串更改为更改为新的字符串。而如果将其设置为null,则表示null已更改为字符串值。 希望这可以帮助!快乐的编码...