我有一个网格视图,在搜索完数据库后填充,之后我在这样的foreach循环中进行了一些计算
foreach(DataRow datarow in ds.Tables[0].Rows){
resturantPostCodeData = checkpostcode(datarow["PostCode"].ToString().Trim());
foreach(DataRow dr in resturantPostCodeData.Tables["geo"].Rows){
rLatitude = Convert.ToDouble(dr["lat"].ToString().Trim());
rLongitude = Convert.ToDouble(dr["lng"].ToString().Trim());
}
distanceResult = distance(myLatitude, myLongitude, rLatitude, rLongitude);
}
foreach循环底部的值distanceResult
我希望这些结果在其自己的列中添加到gridview的末尾
关于如何做到这一点的任何想法?
我正在c#
和asp.net
希望你理解我的问题
答案 0 :(得分:4)
您可以在绑定GridView之前将列添加到DataTable:
DataTable dt = ds.Tables[0];
dt.Columns.Add(new DataColumn("DistanceResult", System.Type.GetType("System.Double")));
foreach (DataRow row in dt.Rows)
{
...
row["DistanceResult"] = distance(...);
}
gvDistance.DataSource = dt.DefaultView;
gvDistance.DataBind();
然后将BoundField添加到GridView:
<asp:GridView ID="gvDistance" runat="server" ...>
<Columns>
...
<asp:BoundField DataField="DistanceResult" ... />
</Columns>
</asp:GridView>
答案 1 :(得分:1)
我最终使用了这两行代码,类似于ConnorsFan给出的答案
ds.Tables[0].Columns.Add("Distance in miles", typeof(double));
稍后在代码中分配我使用的值时
datarow["Distance in miles"] = distanceResult;
感谢您的帮助