簡體   English   中英

添加的列僅適用於GridView中的第一行

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM