0

イベントのDropDownListメソッドOnSelectedIndexChangedが 1 つのラベルの内容を変更します。の最初の要素を除いて、正常に動作し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

4 に答える 4

1

に追加ViewStateMode="true"したところ、DropDownList正常に動作するようになりました。

于 2013-01-19T14:48:12.290 に答える
1

最初の項目の前に「空の」項目がありますか? そうでない場合、最初の項目を選択しても選択されたインデックスは変更されず (最初の項目は既に選択されています)、イベントは発生しません。

于 2013-01-19T13:47:51.567 に答える
0

最初の項目が空の文字列 (つまりstring.Empty )に設定されているかどうかを確認してください。その場合は、nullに設定します。これで問題が解決するはずです。

空の文字列に関する問題: - イベントは、空の文字列を何か新しいものに変更したと見なしません。一方、null に設定すると、null が文字列値に変更されたことが示されます。お役に立てれば!幸せなコーディング...

于 2016-05-04T09:28:46.470 に答える
0

最初の要素はすでに選択されているため、要素を変更していないため、最初の要素を再度選択しても起動しOnSelectedIndexChangedません。
OnSelectedIndexChanged選択した要素が変更された場合にのみ発生します。

于 2013-01-19T14:56:14.940 に答える