0

我有一个下拉列表和一个标签,下拉列表与字典绑定。当用户更改下拉列表的选定值时,我想更新标签。以下代码效果很好,但我想设置标签的初始值,我在 page_load 中设置了选定索引的值,但是事件不会触发。如何解决?是否有任何页面事件可以帮助我解决问题。我知道我可以使用 javascript 修复它,但我不想使用 JS。

 public partial class WebForm1 : System.Web.UI.Page
        {
                Dictionary<string, string> myDictionary = new Dictionary<string, string>();

            protected void Page_Load(object sender, EventArgs e)
            {
                if (!this.IsPostBack)
                {
                    myDictionary.Add("1", "Test Address 1");
                    myDictionary.Add("2", "Test Address 2");
                    myDictionary.Add("3", "Test Address 3");
                    myDictionary.Add("4", "Test Address 4");
                    myDictionary.Add("5", "Test Address 5");

                    drpTest.DataSource = myDictionary;
                    drpTest.DataTextField = "Key";
                    drpTest.DataValueField = "Value";
                    drpTest.DataBind();

                    // I want to set the index & update the label lblAddress
                    drpTest.SelectedIndex = 2;


                }
            }

            protected void drpTest_SelectedIndexChanged(object sender, EventArgs e)
            {
                lblAddress.Text = drpTest.SelectedItem.Value;
            }
4

3 回答 3

2

你应该在页面加载时调用这个函数

drpTest_SelectedIndexChanged(null, null)

并且它不会正常触发,因为您在初始化页面并准备好用于客户端后没有更改下拉选择的值

于 2013-08-07T09:46:51.470 回答
2

在页面加载时更改标签文本。见下文。

protected void Page_Load(object sender, EventArgs e)
{
     if (!this.IsPostBack)
     {
          myDictionary.Add("1", "Test Address 1");
          myDictionary.Add("2", "Test Address 2");
          myDictionary.Add("3", "Test Address 3");
          myDictionary.Add("4", "Test Address 4");
          myDictionary.Add("5", "Test Address 5");

          drpTest.DataSource = myDictionary;
          drpTest.DataTextField = "Key";
          drpTest.DataValueField = "Value";
          drpTest.DataBind();

          drpTest.SelectedIndex = 2;
          lblAddress.Text = drpTest.SelectedItem.Value;     **// add this**
     }
}

希望对你有效。

于 2013-08-07T09:37:28.773 回答
0

当您定义下拉菜单时,包括 drpTest.AutoPostBack = true 这将在更改时触发 SelectedIndexChanged 事件。

于 2018-05-16T15:06:05.190 回答