1

因此,当用户选择了不同的项目时,我尝试加载不同的字符串,我的代码:

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;
    }
}

当我只使用 1 个字符串时,它可以正常工作,但是一旦我尝试在同一个下拉菜单中加载 2 个不同的字符串,它就会关闭,这意味着它根本不显示任何字符串数据。我究竟做错了什么?

4

2 回答 2

1

对于 ASP.NET WebForms DropDownList,请遵循以下代码片段:

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

也许在客户端移动这个逻辑并使用javascript会更好。

于 2013-06-12T11:07:39.507 回答
0

试试这个代码。这对我有用,AutoPostBack 将适用于_Menu2。

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();
    }    
}
于 2013-06-12T11:26:57.730 回答