2011-08-05 11 views
1

実行時に動的に作成されるGridViewがあります(コードは.csクラスにあります)。GridViewの動的に作成された列をインデント(埋め込み)する方法はありますか?

列は、すべての列にこのコードを反復処理することにより、GridViewコントロールに追加されます。

BoundField field = new BoundField(); 
field.HeaderText = element.Heading; 
field.DataField = element.FieldName; 
Column is added to the GridView. 
TableGridView.Columns.Add(field); 

私は最初の列にパディング左スタイル属性を追加したいと思います。どのように私はC#コードでこれを行うのですか?私の知る限り、C#クラスの実行時に列が生成されるため、ASP.NETコードを記述することでこれを行うことはできません。

ありがとうございます!

答えて

2

その後、パディング左に指定したCSSクラスを作成します。

field.ControlStyle.CssClass = "CssClassWithLeftPadding"; 

EDIT:

​​

..andこの:

[OK]を私はコードビハインドにこれを追加
<style> 
    .left_padding 
    { 
    padding-left:5px; 
    } 

+0

をそれを試してみましたが、それは仕事をdidntの - 何も起こりませんでした。私もControlStyleの代わりに 'ItemStyle'を試しましたが、まだ運がありません。 –

+0

私の更新を見て... – Mantorok

+1

ありがとう、それはトリックをした:) –

1

私はこれも動作すると思います:

field.Attributes.Add( "style"、 "padding:5px;");

+0

動作しません - '属性'はBoundFieldでは使用できません。 –

+0

field.Control.Attributes.Add(...);;それは動作しますか? – Icarus

+0

いいえ、いずれか存在しません:/ –

0

あなたはDataFormatStringを使用してみました:

BoundField field = new BoundField(); 
field.DataFormatString = "{0,10}"; 

http://msdn.microsoft.com/en-us/library/txafckwd.aspx

+0

それも試してみた。助けてくれてありがとう、それ以上の提案はありますか? –

+0

Doh。 HTMLは空白を取り除きます。これは一種のklunkyですが、 "    {0}"のようなフォーマット文字列を試すか、フィールドでHtmlEncodeをfalseに設定してみてください。 –