在运行时填充gridview

时间:2011-11-13 09:09:24

标签: asp.net gridview

我有一个gridview,我想在一些通用列表中填充数据。 我使用“DataTable”作为DataSource,它有我需要的列(DataColumn)。

GridView1.DataSource = CreateDataTable();

我的问题是我的gridview包含html标签,所以我需要像

这样的东西
myBoundedField.HtmlEncode = false;

我需要更改列的标题,如果我使用“DataColumn”,这一切都是不可能的。我找到了一些关于BoundField的代码。 为什么/何时应该使用BoundField?有什么好处?

3 个答案:

答案 0 :(得分:2)

创建GridView Column个对象并将其添加到Gridview's Columns collection。并且您可以为自定义值的列创建自己的ItemTemplates,就像您想在此处操作HTML一样。

    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>)在网格中显示..就像您可以使用{{1一样在行命令上保存html代码一样使用此事件。

希望这能帮到你..

答案 1 :(得分:1)

您可以使用新的Column()动态地为网格创建列,并为其指定值。

如果您希望我用一段代码支持,请告诉我。

答案 2 :(得分:1)

在HTML中,按如下方式定义GridView:

<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>

(改编自this example

很明显,您可以了解如何为每列指定列标题(HeaderText)以及HTML编码(HtmlEncode)。 DataField指定数据表中列的名称。