您的位置:首页 > 职场人生

GridView自定义数据的绑定并显示

2012-03-01 03:31 260 查看
GridView是ASP.NET中非常方便好用的一个数据控件,一般的使用是直接用LinqDataSource或SqlDataSource进行数据绑定,然后在GridView中修改列的属性与样式,如果数据源固定只有一个GridView可以所见即所得地显示最后样式,但如果一个GridView绑定多个数据源的话就不那么容易。

此文示范如何自定义GridView的列样式,不使用***DataSource控件而直接将List<T>类型的数据绑定至GridView上,List<T>数据在代码层面可以更方便进行操作获取。

<T>数据类:

/// <summary>
/// 个人未报销明细
/// </summary>
public class UnSubmitExpenseDetailData
{
public int Index { get; set; }
public string UserName { get; set; }
public DateTime Date { get; set; }
public string Describe { get; set; }
public decimal Count { get; set; }

public static string KeyName_Index = "Index";
public static string KeyName_UserName = "UserName";
public static string KeyName_Date = "Date";
public static string KeyName_Describe = "Describe";
public static string KeyName_Count = "Count";

public UnSubmitExpenseDetailData(int index, string userName, DateTime date, string describe, decimal count)
{
this.Index = index;
this.UserName = userName;
this.Date = date;
this.Describe = describe;
this.Count = count;
}
}

将数据绑定至GridView中:

//获取数据,List<T>类型的数据集
this.GridView1.DataSource = (List<MyData>)GetMyData();
//允许分页
this.GridView1.AllowPaging = true;

//清除列
this.GridView1.Columns.Clear();
//禁自动生成列
this.GridView1.AutoGenerateColumns = false;

//生成新列
BoundField f1 = new BoundField();
f1.DataField = UnSubmitExpenseDetailData.KeyName_Index;
f1.HeaderText = "序号";
f1.ItemStyle.HorizontalAlign = HorizontalAlign.Center;
f1.ItemStyle.Width = 80;
this.GridView1.Columns.Add(f1);

BoundField f2 = new BoundField();
f2.DataField = UnSubmitExpenseDetailData.KeyName_UserName;
f2.HeaderText = "用户名称";
f2.ItemStyle.HorizontalAlign = HorizontalAlign.Left;
f2.ItemStyle.Width = 120;
this.GridView1.Columns.Add(f2);

BoundField f3 = new BoundField();
f3.DataField = UnSubmitExpenseDetailData.KeyName_Date;
f3.HeaderText = "报销日期";
f3.ItemStyle.HorizontalAlign = HorizontalAlign.Center;
f3.ItemStyle.Width = 100;
f3.DataFormatString = "{0:yyyy-MM-dd}";
this.GridView1.Columns.Add(f3);

BoundField f4 = new BoundField();
f4.DataField = UnSubmitExpenseDetailData.KeyName_Describe;
f4.HeaderText = "用途";
f4.ItemStyle.HorizontalAlign = HorizontalAlign.Left;
f4.ItemStyle.Width = 150;
this.GridView1.Columns.Add(f4);

BoundField f5 = new BoundField();
f5.DataField = UnSubmitExpenseDetailData.KeyName_Count;
f5.HeaderText = "报销金额";
f5.ItemStyle.HorizontalAlign = HorizontalAlign.Right;
f5.ItemStyle.Width = 100;
f5.DataFormatString = "{0:C}";
this.GridView1.Columns.Add(f5);

//数据绑定
this.GridView1.DataBind();

如此,一个GridView可以绑定显示多个不同结构的List<T>数据源。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐