OnSelectedIndexChanged事件不会为DropDownList的第一个元素触发

时间:2013-01-19 13:35:46

标签: c# asp.net .net

我有一个DropDownListOnSelectedIndexChanged事件的方法会更改一个标签的内容。除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;
    }
}

4 个答案:

答案 0 :(得分:1)

在第一件商品之前,您有'空'商品吗?如果没有,则选择第一个项目将不会更改所选索引(已选择第一个项目),并且不会触发事件。

答案 1 :(得分:1)

我已将ViewStateMode="true"添加到DropDownList,现在效果正常。

答案 2 :(得分:0)

您的第一个元素已被选中,这就是为什么当您再次选择第一个元素时OnSelectedIndexChanged不会触发,因为您没有更改元素。 只有在您选择的元素发生变化时才会触发OnSelectedIndexChanged

答案 3 :(得分:0)

请检查您的第一项是否设置为空字符串(即 string.Empty )。如果是,则将其设置为 null 。这应该可以解决您的问题。

空字符串问题: - 事件不会考虑将空字符串更改为更改为新的字符串。而如果将其设置为null,则表示null已更改为字符串值。 希望这可以帮助!快乐的编码...