0

次のように定義されたドロップダウンリストがあります

<asp:DropDownList ID="ddl1" runat="server"    OnSelectedIndexChanged="ddl1_SelectedIndexChanged" style="width: 107px">
        <asp:ListItem Selected="True" Text="Select a value" Value="select">Select a value</asp:ListItem>
        <asp:ListItem Value="p1">Image 1</asp:ListItem>
        <asp:ListItem Value="p2">Image 2</asp:ListItem>
        <asp:ListItem Value="p3">Image 3</asp:ListItem>
</asp:DropDownList>
<div id="img">
  <asp:Image ID="image1" runat="server"  Width="100"/>
</div>

選択を変更すると、イベントは分離コードで次のように定義されます。

protected void ddl1_SelectedIndexChanged(object sender, EventArgs e)
{
    string i = ddl1.SelectedValue;
    switch (i)
    {
        case "p1":
            image1.ImageUrl = "img/p1.jpg";
            break;
        case "p2":
            image1.ImageUrl = "img/p2.jpg";
            break;
        case "p3":
            image1.ImageUrl = "img/p3.jpg";
            break;
        default "select":
            image1.ImageUrl = "";
            break;
    }
}

ただし、これは画像を選択していないようです。

4

1 に答える 1

1

.SelectedValueリストがデータバインドされている場合にのみ使用されます! これが、画像が選択されていない理由です。. MSDN を見ると、私が間違っていることがわかりますhttp://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.listcontrol.selectedvalue.aspx

これを次のように変更します。

string i = ddl1.SelectedItem.Value;

そしてそれは動作します:)。

于 2013-02-05T14:22:11.037 に答える