使用多个 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;
}
}
<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;
}
}