0

我是 asp.net 和 C# Web 应用程序开发的新手。

我的问题是:我有一个GridView1绑定到从 SQL Server 表中获取数据的数据源。

Gridview1有这些列:

  • 选择(gridview 中的默认选择可用于选择行)
  • 时间
  • 顾客
  • 地址
  • 经度(可见 = 假)
  • 纬度(可见 = 假)

此数据也按下拉列表日期过滤和排序

我想要做的是当我的页面加载纬度和经度列的值时,第一行值被分配给我的变量 lat 和 lng

这就是我正在写的,基本上 lat 和 lng 变量将在我的另一个函数中使用:

        Double lat, lng;
        lat = Convert.ToDouble(GridView1.Rows[1].Cells[4].Text);
        lng = Convert.ToDouble(GridView1.Rows[1].Cells[5].Text);
        GLatLng latlong = new GLatLng(lat, lng);
        GMap1.setCenter(latlong, 10);

抛出以下异常:

指数超出范围。必须是非负数且小于集合的大小。

gridview 数据永远不会为空,它总是有一些数据

4

2 回答 2

0

在访问行集合 Gridview.Datasource =yourdatasource Gridview.bind(); 之前,请确保将您的 gridview 绑定到数据源。

于 2015-02-19T06:09:23.120 回答
0

尝试这个

lat = Convert.ToDouble(GridView1.Rows[0].Cells[3].Text);

因为Gridview RowsandCells总是从0(零)开始。

或者

最好的方法是使用.findControl()方法,Controls如下所示。

string lat = ((Label)GridView1.Rows[0].FindControl("labelID")).Text

但是,对于上面的代码,你必须<asp:label><ItemTemplate>你的GridView

于 2015-02-19T06:12:17.027 回答