2015-07-13 112 views

回答

0

這不應該是複雜的,到GridView,你有什麼來源,我想DataTable/Dataset,現在你需要做的後獲取的DataTable (dt)是什麼:

  • 添加DataColumn編程使用像一個代碼:

1)dt.Columns.Add("ColumnName",Type);

在這種情況下:

dt.Columns.Add("NoPOD",typeof(int));

檢查鏈接:

Add Data Columns to Data Table - MSDN

Add Data Columns to Data Table

2)現在,你需要在DataTable編程分配值DataColumn,使用一個代碼如:

for(int index=0; index=dt.Rows.Count-1; index++) 
     { 
     dt.Rows[index]["NoPOD"] = Convert.ToInt32(dt.Rows[index]["Jobs"]) - Convert.ToInt32(dt.Rows[index]["POD"])  
     } 

現在,DataTable將包含相關列,並且您可以使用網格視圖進行綁定,因此它將包含新添加的列。如果你綁定到類似List<T>那麼類似的過程可以遵循

+0

感謝您的答案,但我上線的錯誤'指數= dt.Rows.Count-1'不能轉換INT爲bool – user123456789

+0

它必須是在你的代碼中的一些問題,請檢查一下,你的地方正在將int與bool進行比較,所以編譯器正在抱怨。你使用==而不是=。你可能想粘貼你的代碼,這是導致問題提供更多的細節 –

0

添加一個TemplateField到你的GridView,在所有的BoundFields之後。例如

<asp:TemplateField HeaderText="Non POD"> 
     <ItemTemplate> 
      <asp:Label ID="Label1" runat="server" Text='<%# Convert.ToInt32(Eval("Jobs")) - Convert.ToInt32(Eval("POD")) %>'></asp:Label>        
     </ItemTemplate> 
</asp:TemplateField> 
+0

我沒有任何BoundFields。這些列正在動態創建。 – user123456789

+0

如果您在代碼隱藏中動態創建它們,那麼您是以什麼方式阻止您以相同的方式創建列?如果你的gridview使用的是數據源,那麼將AutoGenerateColumns設置爲false,你就可以在asp中添加BoundField和TemplateField項目。 – Adrian