2017-04-03 17 views
0

私はその中にいくつかのリスト項目を持つドロップダウンリストを持っており、ボタンがあり、ドロップダウンリストの選択に基づいてそのボタンの色を変更したいと思います。すべての選択は、ボタンに異なる色を与えます。ASP.net Webフォームのドロップダウンリストの選択に基づいてボタンの色を変更するにはどうすればよいですか?

私はこのselectedindexchangeイベントを持っていますが、動作していない:

protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    if (DropDownList1.SelectedItem.Text == "[email protected]") 
    { 
     Button1.BackColor = System.Drawing.Color.Blue; 
    } 
    else if (DropDownList1.SelectedItem.Text == "[email protected]") 
    { 
     Button1.BackColor = System.Drawing.Color.Green; 
    } 
    else if (DropDownList1.SelectedValue == "[email protected]") 
    { 
     Button1.BackColor = System.Drawing.Color.Red; 
    } 
    else if (DropDownList1.SelectedValue == "[email protected]") 
    { 
     Button1.BackColor = System.Drawing.Color.Yellow; 
    } 
    else if (DropDownList1.SelectedValue == "[email protected]") 
    { 
     Button1.BackColor = System.Drawing.Color.White; 
    } 
    else if (DropDownList1.SelectedValue == "[email protected]") 
    { 
     Button1.BackColor = System.Drawing.Color.Black; 

    } 

ドロップダウンリスト:

<asp:DropDownList ID="DropDownList1" AutoPostBack="True" OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged" runat="server"> 
    <asp:ListItem value="blue">[email protected]</asp:ListItem> 
    <asp:ListItem Value="Green">[email protected]il</asp:ListItem> 
    <asp:ListItem Value="Red">[email protected]</asp:ListItem> 
    <asp:ListItem Value="yellow">[email protected]</asp:ListItem> 
    <asp:ListItem Value="white">[email protected]</asp:ListItem> 
    <asp:ListItem Value="black">[email protected]</asp:ListItem> 
</asp::DropDownList> 

そしてボタン:

enter code here<asp:Button ID="Button1" runat="server" style="background-color:aqua" Text="Send and Receive" BackColor="#FF3399" /> 

私が作るために何ができますそれは動作しますか?あなたののDropDownList

答えて

0

あなたはのAutoPostBackプロパティを設定しました。 選択を変更するたびに、サーバーへのポストバックが行われます。

これによりページが強制的にリロードされます。

ただし、ボタンのインラインスタイルが定義されています。定義されたすべてのインラインスタイルは、ページがレンダリングされ、スタイルが適用されるため、ポストバックによって作成されたスタイルを上書きします。あなたの分離コードで

、あなたはDropDownList1.SelectedItem.Textのためにチェックして、いくつかの条件のために、あなたはDropDownList1.SelectedValueを確認してください。

ちょうどあなたのコードを更新...

protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e) 
{   
if (DropDownList1.SelectedItem.Text == "[email protected]") 
     { 
      Button1.BackColor = System.Drawing.Color.Blue; 
     } 
     else if (DropDownList1.SelectedItem.Text == "[email protected]") 
     { 
      Button1.BackColor = System.Drawing.Color.Green; 
     } 
     else if (DropDownList1.SelectedItem.Text == "[email protected]") 
     { 
      Button1.BackColor = System.Drawing.Color.Red; 
     } 
     else if (DropDownList1.SelectedItem.Text == "[email protected]") 
     { 
      Button1.BackColor = System.Drawing.Color.Yellow; 
     } 
     else if (DropDownList1.SelectedItem.Text == "[email protected]") 
     { 
      Button1.BackColor = System.Drawing.Color.White; 
     } 
     else if (DropDownList1.SelectedItem.Text == "[email protected]") 
     { 
      Button1.BackColor = System.Drawing.Color.Black; 

     } 
} 

の代わりに/他、あなたがスイッチステートメントを使用ADN DropDownList1.SelectedValueをチェックする必要がある場合の多くを使用して...

switch (DropDownList1.SelectedValue) 
     { 
      case "blue": 
       Button1.BackColor = System.Drawing.Color.Blue; 
       break; 
      case "green": 
       Button1.BackColor = System.Drawing.Color.Green; 
       break; 
      case "red": 
       Button1.BackColor = System.Drawing.Color.Red; 
       break; 
      case "yellow": 
       Button1.BackColor = System.Drawing.Color.Yellow; 
       break; 
      case "white": 
       Button1.BackColor = System.Drawing.Color.White; 
       break; 
      case "black": 
       Button1.BackColor = System.Drawing.Color.Black; 
       break; 
      default: 
       Button1.BackColor = System.Drawing.Color.Gray; 
       break; 
     } 

...これにより、読みやすく、管理しやすくなります。 最後に、ボタンのインラインスタイルを削除します。

<asp:Button ID="Button1" runat="server" Text="Send and Receive" BackColor="#FF3399"/> 
関連する問題