添加的列只适用于GridView中的第一行
本文关键字:一行 适用于 GridView 添加 | 更新日期: 2023-09-27 18:02:43
我正在动态地显示我的GridView的列,我想添加基于其他两个列的值的另一列。所以新列是作业数减去POD数。我能够创建新列,但它只显示GridView中第一行的结果,所有其他行都是空白的。也可以改变这个列的位置吗?它默认是最后一列,但我希望它是GridView的第四列。
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
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();
您的代码有错误。当您使用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();
希望对你有帮助