Sto provando a creare dinamicamente un GridView. Una delle colonne è l'utente che ha creato la riga.come disporre di colonne su GridView con diverse origini dati?
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();
Ho creato il GridView nella funzione BuildGrid che si trova nella classe 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;
}
Le 3 colonne attualmente visualizzate vengono tutte da job_piece. Poiché l'utente non appartiene a questa classe, ho cercato di creare la colonna al di fuori di questa funzione.
La colonna visualizza l'intestazione ma le righe sono vuote. Il nome utente viene dalla classe JobDebrief
. Ma dal momento che sto legando GridView ai pezzi, db.DataSource = jb.Pieces;
non trova le informazioni. È possibile impostare la colonna utente su un diverso DataSource?
Ogni riga nuova colonna deve contenere lo stesso valore jd.DbriefedByUser. Ho ragione ? – Disappointed
sembra che non ci siano motivi per aiutarti se non rispondi alle domande di chiarimento. – Disappointed