在gridview和数据上添加一个额外的列

时间:2016-04-01 15:53:17

标签: c# mysql asp.net gridview datagridview

我有一个网格视图,在搜索完数据库后填充,之后我在这样的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

制作网络应用程序

希望你理解我的问题

2 个答案:

答案 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;

感谢您的帮助