我有一个gridview,我想在一些通用列表中填充数据。 我使用“DataTable”作为DataSource,它有我需要的列(DataColumn)。
GridView1.DataSource = CreateDataTable();
我的问题是我的gridview包含html标签,所以我需要像
这样的东西myBoundedField.HtmlEncode = false;
我需要更改列的标题,如果我使用“DataColumn”,这一切都是不可能的。我找到了一些关于BoundField的代码。 为什么/何时应该使用BoundField?有什么好处?
答案 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
添加一些有界列,您可以访问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
指定数据表中列的名称。