0

6 つのボタンを含む div で構成されるユーザー コントロール (.ascx) を作成しました。ボタンの 1 つの ID の値を含む文字列属性「selectedButton」があります。

私がやりたいことは、ページがロードされたときに、ID が selectedButton 属性に対応するボタンの背景色を変更できるようにすることです。

現在、次のように、selectedButton 属性の値の ascx.cs で切り替えを行っています。

switch (selectedButton)
{
  case "Button1":
  Button1.BackColor = System.Drawing.ColorTranslator.FromHtml("#00CC00");
  break;
  //etc...
}

それは機能しますが、あまり効率的ではないようです。また、ボタンが増えたとしても動的ではありません。

これをascxソースに入れてみました:

<script type="text/javascript">
    var sb = document.getElementById("<%=this.selectedButton %>");
    sb.BackColor = System.Drawing.ColorTranslator.FromHtml("#00CC00");
</script>

しかし、結果はありません。

前もって感謝します。

4

4 に答える 4

1

答えは、何がselectedButton含まれているかによって異なります。サーバー側のIDが含まれている場合(およびその場合のように見えるコードスニペットから)、FindControlコードビハインドで使用できるものよりも:

Button button = this.FindControl(selectedButton) as Button;
if (button != null)
{
    button.BackColor = System.Drawing.ColorTranslator.FromHtml("#00CC00");
}

ただしselectedButton、クライアント側ID(ASP.NETがコントロールごとに生成するID)が含まれている場合は、JavaScriptを使用する必要があります。

<script type="text/javascript">
    var sb = document.getElementById("<%= this.selectedButton %>");
    sb.style['background-color'] = '#00CC00';
</script>
于 2013-03-14T15:55:54.203 に答える
0

サーバーサイドとクライアントサイドのコードを混在させようとしています。それはうまくいきません。

サーバーへのラウンドトリップなしでクライアントでこれを変更したい場合は、純粋なjavascriptを使用してください。this.selectedButtonつまり、ここでは、、System.Drawing.ColorTranslatorまたはその他のC#コードを使用できません。

代わりに純粋なJavaScriptソリューションを使用して色を変更してください。その方法については、たくさんのことがわかります。

于 2013-03-14T15:50:03.937 に答える
0

これを試して:

<script type="text/javascript">
    var sb = document.getElementById("<%=this.Button1.ClientID %>");
    sb.style.backgroundColor =  "<%= System.Drawing.ColorTranslator.FromHtml("#00CC00") %>)";
</script>

ここで見つけました:http://forums.asp.net/t/1320687.aspx/1

しかし、この SO の投稿は、私が実際に探していたものです: Passing ASP.NET client IDs in to a javascript function

彼らはuniqueIDを使用していますが、記憶から、ClientIDは正しい解決策です。

于 2013-03-14T15:50:50.267 に答える
0

clientClick を使用してメソッドを呼び出して色を変更し、clientId 値を .style.background = color; で渡します。JavaScript を使用して、詳細情報はこちら JavaScript で背景色を変更するにはどうすればよいですか?

于 2013-03-14T15:52:31.217 に答える