DataGrid和格式化数据
本文关键字:格式化数据 DataGrid | 更新日期: 2023-09-27 18:27:31
我是ASP.NET的新手,不太了解如何显示包含数据库数据的表。数据加载在一个对象中,在那里我有一个对象列表。
现在,我想显示一个表,其中包含一些列、一个图像(从对象中的两个字段创建的路径)、一个链接(传递对象的一个字段)、文本区域(来自对象的id、来自对象的值)和一个单选按钮(来自对象)。
我该怎么做。我尝试过将数据网格绑定到对象列表,并且它很有效。但我不想显示所有的数据成员,也不知道如何创建正确的标题、图像和表单控件。
ImageDataGridView.DataSource = tradeObj.Images;
ImageDataGridView.DataBind();
要停止为数据源中的每一列自动创建列,请设置:
ImageDataGridView.AutoGenerateColumns = false
然后,您需要为要显示的数据源中的每一列定义一列,这取决于您可能想要绑定列(您可以控制格式)或更多相关内容的列。
请参阅http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.datagrid.columns.aspx对于一个样本和可用的不同列类型,
您可以使用边界字段指定列和标题
<asp:boundfield datafield="yourColumn"
headertext="theHeaderText"/>
你需要关闭:
ImageDataGridView.AutoGenerateColumns = false
要格式化值,请查看msdn上的此链接。
您需要使用模板字段根据以下自定义数据网格
<asp:GridView ID="GridView1" runat="server">
<Columns>
<asp:TemplateField ShowHeader="True">
<ItemTemplate>
<asp:Image runat="server" ID="Image1"
ImageUrl="Enabled.gif" />
</ItemTemplate>
</asp:TemplateField>
......
......
</Columns>
</asp:GridView>
请参阅此msdn链接以使用数据网格中的模板字段
更新
为了遍历gridview的每一行,您需要按照以下步骤处理Rowdatabound事件。
protected void gridView_RowDataBound(Object sender, GridViewRowEventArgs e)
{
if(e.Row.RowType == DataControlRowType.DataRow)
{
Image imgCtrl = (Image) e.Row.FindControl("imgCtrl");
imgCtrl.ImageUrl = "you can apply any format of url here";
}
}
有关Rowdatabound事件的更多信息,请访问此链接
只需在datagrid/gridview控件上设置autogenerate to false
。然后,您可以创建一个templateField列&将标签或文本框控件放入itemTemplate&像一样绑定它们
<asp:Label ID="lblMyColumn" Text="<%# Bind("YourColumnName") %>' runat="server"></asp:Label>
或者,您也可以将boundField&设置其属性
<asp:BoundField DataField="YourColumnName" HeaderText="Your Text" SortExpression="YourColumnName" />