【发布时间】:2015-10-07 01:28:03
【问题描述】:
我正在尝试动态创建一个 GridView。其中一列是创建该行的用户。
JobDebrief jd = new JobDebrief(JobID);
Job jb = new Job(JobID);
DataGrid db = JobClass.Job_Piece.BuildGrid();
db.Columns.Add(CreateBoundColumn(jd.DbriefedByUser, "User"));
PlaceHolder.Controls.Add(db);
db.DataSource = jb.Pieces;
db.DataBind();
我在 Job_piece 类中的 BuildGrid 函数中创建了 GridView。
public static DataGrid BuildGrid()
{
DataGrid NewDg = new DataGrid();
NewDg.DataKeyField = "ID";
NewDg.AutoGenerateColumns = false;
NewDg.CssClass = "tblResults";
NewDg.HeaderStyle.CssClass = "tblResultsHeader";
NewDg.AlternatingItemStyle.CssClass = "ResultsStyleAlt";
NewDg.ItemStyle.CssClass = "ResultsStyle";
NewDg.Columns.Add(Load.CreateBoundColumn("AdvisedQty", "Qty Advised"));
NewDg.Columns.Add(Load.CreateBoundColumn("PieceTypeString", "Piece Type"));
NewDg.Columns.Add(Load.CreateBoundColumn("ReceivedQty", "Rcvd Qty"));
NewDg.Width = Unit.Percentage(100.00);
return NewDg;
}
public static BoundColumn CreateBoundColumn(string DataField, string Header,string CssClass ="",bool Highlight = false)
{
BoundColumn column = new BoundColumn();
column.DataField = DataField;
column.HeaderText = Header;
column.SortExpression = DataField;
if (Highlight)
{
column.ItemStyle.CssClass = "ColumnHighlight";
}
if (!string.IsNullOrEmpty(CssClass))
{
column.ItemStyle.CssClass = CssClass;
}
return column;
}
它当前显示的 3 列都来自 job_piece。由于用户不属于此类,因此我尝试在此函数之外创建列。
该列显示标题,但行为空白。用户名来自JobDebrief 类。但由于我将 GridView 绑定到各个部分,db.DataSource = jb.Pieces; 它没有找到信息。是否可以将用户列设置为不同的数据源?
【问题讨论】:
-
新列中的每一行都应包含相同的值 jd.DbriefedByUser。我说的对吗?
-
如果您不回答澄清问题,似乎没有理由帮助您。
标签: c# asp.net gridview datasource databound