-1

重複の可能性:
デフォルトのテキストボックスの境界線のスタイルと幅

私のページには、コードビハインドから赤い縁取りが必要な TextBox があります。ただし、垂直スクロールバーを表示する Multiline TextBox は、横からの境界線を表示しません。

境界線を設定する私のコードは次のとおりです。

            foreach (var str in idsRequired)
            {
                var ctrl = (WebControl)FindControl(str);
                if (ctrl != null)
                    ctrl.Style.Add(HtmlTextWriterStyle.BorderColor, "red");
            }

ID でコントロールを取得し、境界線を設定します。質問: すべての TextBox コントロールを正しく縁取るにはどうすればよいですか?

編集

境界線のスタイルを 2px に設定すると、右の境界線が表示されます。ここでわかるように:

ここに画像の説明を入力

これをどのように説明できますか?

4

1 に答える 1

2

アドバイスとして、コントロールのスタイルを CSS ファイルまたは ASP.Net テーマに委譲してみてください。なんで?通常、Web サイト全体で同じスタイルを再利用し、スタイルを再度変更する必要がある場合 (実際のアプリケーションでは頻繁に発生します) を想像するため、コードを直接編集する必要があり、望ましくないバグが発生する可能性があります。これで、デザインをコードから分離するだけです

  • CSS ファイルでスタイルを宣言し、それをページにインポートするだけです。

    CSS の使用

       .txtWithRedBorder
      {
    border-style: solid;
    border-color: #FF0000;
    

    }

    あなたのコントロールで

      <asp:TextBox runat="server" Rows="5" TextMode="MultiLine" CssClass="txtWithRedBorder" />
    

    CSS ファイルを Theme フォルダーの下に置き、次のディレクティブをページに追加して、すべての CSS ファイルをページに自動的にインポートすることを忘れないでください。

       <%@ Page Theme="Theme1"....
    
  • または、ASP.Net テーマを作成して同じ効果を実現することもできます。

    <%@ Page Theme="Theme1"....
    
    <asp:TextBox runat="server" Rows="5" SkinID="someSkinID" TextMode="MultiLine" />
    

    スキンファイルで:

    <asp:TextBox runat="server" BorderColor="Red" BorderStyle="Solid" SkinID="someSkinID" />
    

    テーマを指定する必要があることに注意してください。

    ここに画像の説明を入力

    そして、これが結果です

    ここに画像の説明を入力

于 2012-06-20T08:10:56.503 に答える