設定方法を教えてくださいテーブルの背景にプログラムを使っ走りながら、asp.net ページに表示すべき事は何か?

StackOverflow https://stackoverflow.com/questions/1646007

  •  22-07-2019
  •  | 
  •  

質問

私はaspxページを一つの背景の色をデフォルトにしました。が必要で変更できるようなプログラムに一定のオプションのラジオボタンを選択します。また設定のID分野のテーブルがないのですがアクセスで私C#コードの背後にファイルです。

Myオリジナルテーブル:

<table id="tblSheet" runat="server" style="border-color: #FF9900; border-style: solid; 
border-width:  thin; width:100%; background-color: #99ccff;" cellspacing="4" 
cellpadding="1">

あると思いますかid私の頭に付けたものです。

編集:
今でも私のコードの後ろん、実際に背景色を変更します.こちらのコード私のradiobuttonlist:

<asp:RadioButtonList ID="rdoStatus" runat="server" AutoPostBack="true"
RepeatDirection="Horizontal" Visible="true"   
OnSelectedIndexChanged="rdoStatus_OnSelectionChanged">
<asp:ListItem Value="181001" Text="Open"/>
<asp:ListItem Value="181002" Text="Closed" />
<asp:ListItem Value="181003" Text="Pending" />
</asp:RadioButtonList>

私を打つのブレークポイントを設定し、イベントハンドラが、背景色が変化する可.商品をご購入の場合は保留にしたいバックグラウンドを変更するには色も違います。な変化をラジオボタンの開閉をしたいかどうかを確認するために背景色をデフォルトにしました。

編集2:
このコード私のイベントハンドラはとてもシンプルです:

if (rdoStatus.SelectedValue == "181003")
{
  tblSheet.BgColor = "#ff9a9a";
}
else
{
  tblSheet.BgColor = "#99ccff";
}
役に立ちましたか?

解決 3

ログインしてくださ働!
私のテーブルの取り出して、その背景にカラー):

<table id="tblSheet" runat="server" style="border-color: #FF9900; border-style: solid; 
border-width: thin; width:100%;" cellspacing="4" cellpadding="1">

そして私のコードを設定し、背景色のPage_Loadき ない る可:

tblSheet.Bgcolor = "#99ccff";

ほら!のradiobuttonlistやイベントハンドラとしての問題をもたらしていました。の可変の色のオリジナルです。コ皆様のお役に立つことでしょ

他のヒント

テーブルタグに runat =&quot; server&quot; を配置

これを行うと、プログラムでテーブルにアクセスできるようになります。

背景色を直接変更するには、次を試してください:

if (rdoStatus.SelectedValue == "181003")
    {
      tblSheet.Style.Add("background-color", "#ff9a9a");
    }
    else
    {
      tblSheet.Style.Add("background-color", "#99ccff");
    }

可能な限りスタイルシートを使用している場合は、これを試してください:

if (rdoStatus.SelectedValue == "181003")
{
  tblSheet.CssClass = "default_color"
}
else
{
  tblSheet.CssClass = "other color"
}

この変更をラジオボタンから直接行うポストバックをトリガーしていますか?
この時点で変更されるのはこれだけですか?

これらの両方の答えが「はい」の場合、代わりにjavascriptでこれをすべて実行し、ポストバックを完全にスキップすることを検討する必要があります。

<input type="radio" value="..." name="..." id="..."
    onclick="document.getElementById('tblSheet').style.backgroundColor = '#99ccff';" />

ここでの理由は、ポストバックはすべてをクライアント上に保持するのに比べて非常に遅いことであり、Webアプリケーションの能力を簡単に拡張することもできません(もちろん、サーバーでの作業が多いとスケーラビリティが低下します)。そのため、ユーザーの方が高速で、サーバーの作業が少なくなります。

ただし、サーバーから作業を移動するときにJavaScriptが無効になっているユーザーの機能を失うしないように注意する必要があります。ただし、このポストバックがラジオボタンによって既にトリガーされている場合、この機能はすでにJavaScriptに依存しています。

まず、runat =&quot; server&quot;がないため、テーブルを表示できません。 IDを表示できるテーブルの属性。2番目に、コードにテーブルが表示されていても、テーブルの色を変更することはできません。テーブルの属性にアクセスし、そこに色を設定しても、変更を確認するには再度投稿する必要があるため、それも役に立ちません。

あなたがする必要があるのは、更新パネルを使用し、#FF9900の代わりに変数を使用することです。これにより、デフォルトの色は赤または任意の色になり、チェックボックスのチェックイベントで値を緑または他の色に変更します。

色を変更するだけで、テーブルをサーバーコントロールに変換する場合(テーブルまたは別のサーバーコントロールでrunat = serverを使用する場合)、JavaScriptの方が優れたソリューションです。 ASP.NETがページのレンダリング時にIDの名前を変更するため、テーブルIDを取得するgetElementByIdの埋め込みコードブロック。

Joelの例では、次のようになります。

<input type="radio" value="..." name="..." id="..."    onclick="document.getElementById('<% =tblSheet.ClientID%>').style.backgroundColor = '#99ccff';" />
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top