添加的列仅适用于 GridView 中的第一行
Column added only works for first row in GridView
我正在为我的 GridView 动态显示我的列,我想根据其他两列的值添加另一列。所以新列是作业数减去 POD 数。我能够创建新列,但它只显示 GridView 中第一行的结果,所有其他行都是空白的。也可以更改此列的位置吗?它默认为最后一列,但我希望它是 GridView 中的第 4 列。
main.Columns.Add("NotPOD", typeof(int));
int index = 0;
foreach (DataRow row in main.Rows)
{
main.Rows[index]["NotPOD"] = Convert.ToInt32(main.Rows[index]["Jobs"]) - Convert.ToInt32(main.Rows[index]["POD"]);
}
gvResults.DataSource = main;
gvResults.DataBind();
您的代码有错误。当你使用 foreach 时,你不需要使用索引。你也没有增加 index
foreach (DataRow row in main.Rows)
{
row["NotPOD"] = Convert.ToInt32(row["Jobs"]) - Convert.ToInt32(row["POD"]);
}
我猜想解决这个问题将您的索引更新为
main.Columns.Add("NotPOD", typeof(int));
int index = 0;
foreach (DataRow row in main.Rows)
{
main.Rows[index]["NotPOD"] = Convert.ToInt32(main.Rows[index]["Jobs"]) - Convert.ToInt32(main.Rows[index]["POD"]);
index++;
}
gvResults.DataSource = main;
gvResults.DataBind();
希望对你有所帮助
使用foreach
main.Columns.Add("NotPOD", typeof(int));
foreach (DataRow row in main.Rows)
{
row["NotPOD"] = Convert.ToInt32(row["Jobs"]) - Convert.ToInt32(row["POD"]);
}
gvResults.DataSource = main;
gvResults.DataBind();
使用for
main.Columns.Add("NotPOD", typeof(int));
for(int index = 0;index < main.Rows.Count; index++)
{
main.Rows[index]["NotPOD"] = Convert.ToInt32(main.Rows[index]["Jobs"]) - Convert.ToInt32(main.Rows[index]["POD"]);
}
gvResults.DataSource = main;
gvResults.DataBind();
我正在为我的 GridView 动态显示我的列,我想根据其他两列的值添加另一列。所以新列是作业数减去 POD 数。我能够创建新列,但它只显示 GridView 中第一行的结果,所有其他行都是空白的。也可以更改此列的位置吗?它默认为最后一列,但我希望它是 GridView 中的第 4 列。
main.Columns.Add("NotPOD", typeof(int));
int index = 0;
foreach (DataRow row in main.Rows)
{
main.Rows[index]["NotPOD"] = Convert.ToInt32(main.Rows[index]["Jobs"]) - Convert.ToInt32(main.Rows[index]["POD"]);
}
gvResults.DataSource = main;
gvResults.DataBind();
您的代码有错误。当你使用 foreach 时,你不需要使用索引。你也没有增加 index
foreach (DataRow row in main.Rows)
{
row["NotPOD"] = Convert.ToInt32(row["Jobs"]) - Convert.ToInt32(row["POD"]);
}
我猜想解决这个问题将您的索引更新为
main.Columns.Add("NotPOD", typeof(int));
int index = 0;
foreach (DataRow row in main.Rows)
{
main.Rows[index]["NotPOD"] = Convert.ToInt32(main.Rows[index]["Jobs"]) - Convert.ToInt32(main.Rows[index]["POD"]);
index++;
}
gvResults.DataSource = main;
gvResults.DataBind();
希望对你有所帮助
使用foreach
main.Columns.Add("NotPOD", typeof(int));
foreach (DataRow row in main.Rows)
{
row["NotPOD"] = Convert.ToInt32(row["Jobs"]) - Convert.ToInt32(row["POD"]);
}
gvResults.DataSource = main;
gvResults.DataBind();
使用for
main.Columns.Add("NotPOD", typeof(int));
for(int index = 0;index < main.Rows.Count; index++)
{
main.Rows[index]["NotPOD"] = Convert.ToInt32(main.Rows[index]["Jobs"]) - Convert.ToInt32(main.Rows[index]["POD"]);
}
gvResults.DataSource = main;
gvResults.DataBind();