gpt4 book ai didi

c# - 如何在具有不同数据源的 GridView 上设置列?

转载 作者:可可西里 更新时间:2023-11-01 09:13:40 26 4
gpt4 key购买 nike

我正在尝试动态创建一个 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 绑定(bind)到片段,db.DataSource = jb.Pieces; 它没有找到信息。是否可以将用户列设置为不同的数据源?

最佳答案

最简单的答案是创建一个新的数据表并分配其中的所有值

  DataTable dt= jb.Pieces.CopyToDataTable();
dt.Columns.Add("UserId")
for(int i=0;i<dt.Rows.Count;i++)
{
dt.Rows[i]=//Your info
}
db.DataSource = dt;
db.DataBind();

关于c# - 如何在具有不同数据源的 GridView 上设置列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31473897/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com