[英]Column added only works for first row in GridView
我正在為GridView動態顯示我的列,並且我想根據其他兩列的值添加另一列。 因此,新列是Jobs數量減去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時,無需使用索引。 您也沒有增加索引
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();
希望對您有幫助
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.