0

GridView の行とセルを反復処理して値を取得し、2D array. これは私のコードです:

 for (int i = 0; i < GridView2.Rows.Count; i++)
 {
     for (int j = 0; j < (GridView2.Rows[i].Cells.Count - 3); j++)
     {
         // using the labels of the template fields.....
         Label values = (Label)GridView2.Rows[i].Cells[j].FindControl("Label" + j);
         GridValues[i,j] = values.Text; // gridvalues is my 2d array.    
     }
 }

今必要なのは、上記のループから取得した同じ値をリスト (2D) に追加することです。だから私はそのリストのクラスを作成しました

これはコードです:

public  class GridValuesClass
{
    public string GridCustomerName { get; set; }
    public string GridPickUpPoint { get; set; }
    public DateTime GridPickUpDate { get; set; }
    public TimeSpan GridDropPoint { get; set; }
    public DateTime GridDropDate { get; set; }
    public string GridCabStatus { get; set; }
    public string GridAssignedCab { get; set; }
    public TimeSpan GridActualDropTime { get; set; }
}

これらのプロパティは、グリッドビューの列名を表します。

では、このクラス内のグリッドビューに値を追加するにはどうすればよいですか?

また、自分の値がlist<GridValuesClass>

4

1 に答える 1

2

後でリストに保存するために、2D配列に保存する必要はありません。代わりに、リストに直接保存できます。

このようなもの:

var list = new List<GridValuesClass>();

for (int i = 0; i < GridView2.Rows.Count; i++)
{
     var job = new GridValuesClass {
          GridPickUpPoint = GridView2.Rows[i].Cells[0]...,
          GridPickUpDate = ...,
          // and so on with possible use of conversions to get the correct types
     }
     list.Add(job);
}

お役に立てれば。


補足として、より意味のある名前を使用してください。

  • クラスに、よりも意味のあるクラス名を付けGridValuesClassます。複数のグリッドビューがある場合、この名前は役に立たなくなります。あなたがどのようにプロパティに名前を付けたかについて私が集めたものから、それはタクシーの仕事の注文のように見えます。だから多分JobOrder
  • GridView2何も教えてくれません。グリッドビューにはどのような種類のデータが含まれていますか?たぶんJobsGridView
  • すべてのフィールドの前に?を付ける必要がありますGridか?グリッドビューがないコンテキストでデータが保存または使用された場合はどうなりますか?
于 2012-12-18T10:00:21.680 に答える