替换下拉菜单中的字符串

本文关键字:字符串 下拉菜单 替换 | 更新日期: 2023-09-27 18:17:56

所以当用户选择了不同的项目时,我试图加载一个不同的字符串,我的代码:

void ModeSelectorSelectionChanged(object sender, SelectionChangedEventArgs e)
{
    var data1 = new string[]
    {
        "January 2012",
        "February 2012",
        "March 2012",
        "April 2012",
    };
    var data2 = new string[]
    {
         "Married",
         "Divorced",
         "Buy new house",
         "Get promotion",
    };
    if (_Menu2.SelectedIndex == 2) 
    {
        _Menu3.ItemsSource = data1;     
    }
    else 
    if (_Menu2.SelectedIndex == 3)
    {
        _Menu3.ItemsSource = data2;
    }
}

当我只使用一个字符串它工作得很好,但一旦我尝试加载2个不同的字符串在同一个下拉菜单它关闭,这意味着它不显示任何字符串数据。我做错了什么?

替换下拉菜单中的字符串

. NET WebForms下拉列表遵循以下代码片段:

_Menu3.DataSource = someData;
_Menu3.DataBind();

也许将此逻辑移动到客户端并使用javascript会更好。

试试下面的代码。这是我的工作,AutoPostBack将为_menu的true。

protected void ModeSelectorSelectionChanged(object sender, EventArgs e)
{
    var data1 = new string[]
                                    {
                                    "January 2012",
                                    "February 2012",
                                    "March 2012",
                                    "April 2012",
                                    };
    var data2 = new string[]
                                    {
                                    "Married",
                                    "Divorced",
                                    "Buy new house",
                                    "Get promotion",
                                    };
    if (_Menu2.SelectedIndex == 2)
    {
        _Menu3.DataSource = data1;
        _Menu3.DataBind();
    }
    else if (_Menu2.SelectedIndex == 3)
    {
        _Menu3.DataSource = data2;
        _Menu3.DataBind();
    }    
}