使用多个 DropDownList 来标识要显示的图像

Using Multiple DropDownList To Identity Which Image to Show

<asp:DropDownList ID="Type" runat="server" OnSelectedIndexChanged="Type_SelectedIndexChanged" AutoPostback="True">
    <asp:ListItem Text="-Select Type-" value=""/>
    <asp:ListItem Text="Apple" value="apple" />
    <asp:ListItem Text="Orange" value="orange" />
</asp:DropDownList>

protected void Type_SelectedIndexChanged(object sender, EventArgs e)
    {
        string a = Type.SelectedItem.Value;
        switch (a)
        {
            case "apple":
                image1.ImageUrl = "~/image/apple.jpg";
                break;
            case "orange":
                image1.ImageUrl = "~/image/orange.jpg";
                break;
        }
    }

此代码允许用户 select orange/apple 并且页面中显示的图像将相应更改。但是如果我需要有多个下拉列表来标识要显示的图像怎么办。例如,我添加了另一个下拉列表,允许用户选择水果类型的大小。如果用户 select apple 在 Type 下拉列表和 Big 在 Size 下拉列表中,"Big Apple" 图像将 selected 显示在图像 div.

我们将不胜感激。

假设您的第二个 DropDownList 是 Size,其 SelectedIndexChanged 方法如下:

protected void Size_SelectedIndexChanged(object sender, EventArgs e)
    {
        string image = "";
        switch (Type.SelectedItem.Value)
        {
            case "apple":
                image = "~/image/apple.jpg";
                break;
            case "orange":
                image = "~/image/orange.jpg";
                break;
        }

        switch (Size.SelectedItem.Value)
        {
            case "small":
                image1.ImageUrl = image;
                image1.Width = 200;
                image1.Height = 200;
                break;
            case "big":
                image1.ImageUrl = image;
                image1.Width = 400;
                image1.Height = 400;
                break;
        }
    }

并且无需在 Type_SelectedIndexChanged

中执行任何代码

更新:

如果您已经有不同尺寸的不同图像,那么您可以这样处理:

protected void Size_SelectedIndexChanged(object sender, EventArgs e)
    {
        string image = "";
        switch (Type.SelectedItem.Value)
        {
            case "apple":
                switch (Size.SelectedItem.Value)
                {
                    case "small":
                        image1.ImageUrl = "~/image/small-apple.jpg";
                        break;
                    case "big":
                        image1.ImageUrl = "~/image/big-apple.jpg";
                        break;
                }
                break;
            case "orange":
                switch (Size.SelectedItem.Value)
                {
                    case "small":
                        image1.ImageUrl = "~/image/small-orange.jpg";
                        break;
                    case "big":
                        image1.ImageUrl = "~/image/big-orange.jpg";
                        break;
                }
                break;
        }            
    }