7

データバインドされてGridViewいるボタンがありますが、button_click でGridView行ごとに各列を読み取り、行内の各セルの値を読み取り、データベース内のテーブルを更新したいですか? そのセルにnullが含まれているかどうかを確認する方法も知っています。

私はこのようなことをしようとしていますが、行き詰まりました:

protected void SAVE_GRID_Click(object sender, EventArgs e)
{
    int rowscount = GridView2.Rows.Count;
    int columnscount = GridView2.Columns.Count;
    for (int i = 0; i < rowscount; i++)
    {
        for (int j = 1; j < columnscount; j++)
        {
            // I want to get data of each cell in a row
            // I want to read the corresponding header and store
        }
    }       
}
4

4 に答える 4

23

最も簡単なのは、次を使用することforeachです。

foreach(GridViewRow row in GridView2.Rows)
{
    // here you'll get all rows with RowType=DataRow
    // others like Header are omitted in a foreach
}

編集:編集によると、列に間違ってアクセスしています。0から始める必要があります:

foreach(GridViewRow row in GridView2.Rows)
{
    for(int i = 0; i < GridView2.Columns.Count; i++)
    {
        String header = GridView2.Columns[i].HeaderText;
        String cellText = row.Cells[i].Text;
    }
}
于 2012-09-01T12:39:12.077 に答える
6

「Tim Schmelter」が言っているように、これが最善の方法です。コードを2番目のループ( GridView2.Columns[i].Count by row.Cells.Count )に変更するだけで、次のようになります。

foreach(GridViewRow row in GridView2.Rows)
{
    for(int i = 0; i < GridView2.Columns.Count; i++)
    {
        String header = GridView2.Columns[i].HeaderText;
        String cellText = row.Cells[i].Text;
    }
}

ありがとうございました。

于 2014-05-18T15:36:11.313 に答える