Я пытаюсь динамически создавать GridView. Одним из столбцов является пользователь, создавший строку.Как иметь столбцы в 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();
Я создал GridView в функции BuildGrid, которая находится в классе job_piece.
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. Я прав ? – Disappointed
Кажется, нет причин, чтобы помочь вам, если вы не ответите на вопросы о разъяснении. – Disappointed