2011-11-13 11 views
1

いくつかの一般的なリストのデータで塗りつぶしたいグリッドビューがあります。 私は必要な列(DataColumn)を持つDataSourceとして "DataTable"を使用しました。実行時にグリッドビューにデータを入力する

GridView1.DataSource = CreateDataTable(); 

私の問題は、私は

myBoundedField.HtmlEncode = false; 

ようなものが必要と私は列のキャプションを変更する必要があると私は「のDataColumn」を使用している場合、すべてこれが不可能なので、私のGridViewのHTMLタグが含まれています。 BoundFieldについて話しているコードが見つかりました。 なぜ、代わりにBoundFieldを使用する必要がありますか?どのようなメリットがありますか?

答えて

1

新しいColumn()を使用してグリッドの列を動的に作成し、その列に値を割り当てることができます。

コードでサポートしたい場合は教えてください。

+0

返信いただきありがとうございますAnkit。列と呼ばれるタイプはありますか?問題は、セルに表示したいhtmlコンテンツがあることです。私はメモリ上に私のデータソースを作成するには、DataColumn型を使用してすべての単一の列を定義します –

2

GridView Columnオブジェクトを作成し、Gridview's Columns collectionに追加してください。 HTMLをここで操作したいのと同じように、独自の値の列に対して独自のItemTemplatesを作成することができます。

GridView gvDynamicArticle = new GridView(); 

    gvDynamicArticle.Width = Unit.Pixel(700); 

    gvDynamicArticle.BorderWidth = Unit.Pixel(0); 
    gvDynamicArticle.Caption = "Report View"; 
    gvDynamicArticle.AutoGenerateColumns = false; 

    gvDynamicArticle.ShowFooter = true; 

    TemplateField tf = null; 

    tf = new TemplateField(); 

    tf.HeaderTemplate = new DynamicGridViewTextTemplate("ArticleID", DataControlRowType.Header); 

    tf.ItemTemplate = new DynamicGridViewTextTemplate("ArticleID", DataControlRowType.DataRow); 

    tf.FooterTemplate = new DynamicGridViewTextTemplate(DataControlRowType.Footer, ds.Tables[i].Rows.Count);    

    gvDynamicArticle.Columns.Add(tf); 

は、より多くの情報のためにこれらのリンクをたどる:

http://www.codedigest.com/Articles/ASPNET/168_Create_Dynamic_GridView_Control_in_C_ASPNet.aspx

http://www.codeproject.com/KB/aspnet/dynamic_Columns_in_Grid.aspx

http://www.dotnetfunda.com/articles/article1400-how-to-generate-gridview-columns-dynamically-based-on-user-selection.aspx

は、いくつかの有界列を追加すると、rowcreatedイベントでデータにアクセスし、その後にserver.htmlDeocde(<html encoded field value>)を使用することができますあなたと同じ方法でグリッドに表示するこのイベントを使用してHtmlEncode(<save html field value>)の行コマンドにhtmlコードを保存できます。

希望HTMLでは、あなたが...

1

このヘルプは、次のようにあなたのGridViewを定義します

this exampleから適応)
<asp:GriVview ... AutoGenerateColumns="false" runat="server"> 
    <Columns> 
    <asp:BoundField DataField="CustomerID" HeaderText="Customer ID" /> 
    <asp:BoundField DataField="CompanyName" HtmlEncode="false" HeaderText="Customer Name" /> 
    ... 
    </Columns> 
</asp:GridView> 

あなたが指定することができますどのように見ることが明白です列のキャプション(HeaderText)、および各列のHTMLエンコーディング(HtmlEncodeDataFieldには、データテーブル内の列の名前を指定します。

関連する問題