0

asp.netWebサイトのComboBoxで選択したインデックスに従ってパネルの背景画像を変更したいだけです。しかし、画像が読み込まれていません。これは.aspxページの私のコードです

<asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="true" 
    onselectedindexchanged="DropDownList1_SelectedIndexChanged">
    <asp:ListItem>1</asp:ListItem>
    <asp:ListItem>2</asp:ListItem>
    <asp:ListItem>3</asp:ListItem>
</asp:DropDownList>

<div id="divx" style="height: 250px">
    <asp:Panel ID="Panel1" runat="server" Height="242px">
    </asp:Panel>
</div>

そして、これはコードビハインドです。

protected void Page_Load(object sender, EventArgs e)
{   }
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
    if (DropDownList1.SelectedIndex == 1)
    {
        Panel1.BackImageUrl="C:\\Users\\Laksh\\Documents\\Visual Studio 2010\\WebSites\\WebSite2\\Pic\\Capture.JPG";
    }
    else if (DropDownList1.SelectedIndex == 2)
    {
        Panel1.BackImageUrl="C:\\Users\\Laksh\\Documents\\Visual Studio 2010\\WebSites\\WebSite2\\Pic\\erroe.JPG";
    }
}
4

2 に答える 2

2

ローカル ディスク上の場所を参照する絶対パスを設定することはできません。これは次のようなコードになります...

<!-- This imageURL won't work!! -->
<div id="Panel1" style="height:250px;background-image:url(c:%09emp%0demo.jpg);">       
</div>

代わりに相対パスを使用してください。

protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
    Panel1.BackImageUrl = "~/pic/error.jpg";
}

どうすればよいかわからない場合は、aspx ページのデザイン ビューを使用して、いつでも backgroundImage をパネルに割り当てることができます。パネルを選択し、[プロパティ] に移動し、プロパティBackImageUrlをクリックして、プロジェクト内の画像を選択するだけです。VS は、イメージに完全に機能するパスを追加します!

于 2012-08-25T14:57:37.627 に答える
0

@Pilgerstorfer Franz に同意します。相対パス、つまり ~/xyz... を使用し、server.mappath を実行します。通常、Web サーバーは、サーバー ディレクトリ階層の外部にあるローカル マシンに対する権限を持っていないため、直接マッピングすることはお勧めできません。

jQuery を使用して変更を行うこともできます。以下のような方法を試してください。ddlから値を取得する必要がありますが、それを関数に渡すか、ddlの値フィールドを参照させることができます...

<html>
    <head>
        <script src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.7.2.min.js" ></script>
        <script>
            function doIt()
            {   
                $('#divTryMe').css('background-image','url("test.jpg")');
            }
        </script>
    </head>
    <body>
        <div id="divTryMe" onclick="doIt()">stuff</div>
    </body>
</html>
于 2012-08-25T18:08:36.190 に答える