0

私は asp.net と C# の Web アプリケーション開発は初めてです。

私の質問は: GridView1SQL Server テーブルからデータを取得しているデータ ソースにバインドされている があります。

Gridview1次の列があります。

  • select (行を選択するためにグリッドビューで利用可能なデフォルトの選択)
  • 時間
  • お客様
  • 住所
  • 経度 (可視 = false)
  • 緯度 (可視 = false)

このデータは、ドロップダウン リストの日付によってもフィルタリングおよびソートされます

私がやりたいことは、ページが緯度と経度の列の値をロードするときに、最初の行の値が変数 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 データは null になることはなく、常にいくつかのデータがあります

4

2 に答える 2

0

行コレクション Gridview.Datasource =yourdatasource Gridview.bind(); にアクセスする前に、グリッドビューをデータ ソースにバインドしていることを確認してください。

于 2015-02-19T06:09:23.120 に答える
0

これを試して

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

Gridview RowsCellsは常に0 (ゼロ)から始まるためです。

また

最善の方法は、以下のような.findControl()メソッドを使用することControlsです。

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

ただし、上記のコード<asp:label><ItemTemplate>は、GridView

于 2015-02-19T06:12:17.027 に答える