c#排序并获取datagridview的最后一行

时间:2012-08-01 05:22:49

标签: c# datagridview row

我想用数字对datagridview中的数据进行排序,我想在文本框中显示最后一行的特定单元格。我怎么能这样做?

我的代码:(已编辑)

        if (dataGridView1.Rows.Count > 0)
        {   
            int nRowIndex = dataGridView1.Rows.Count - 1;

            dataGridView1.Rows[nRowIndex].Selected = true;

            textBox2.Text = dataGridView1.Rows[nRowIndex].Cells[2].Value.ToString() ; << exception occur

我得到这个NullReferenceException。

如何解决这个问题?

PS:我有3列,我需要获得最后一行的第3列。

4 个答案:

答案 0 :(得分:1)

您正在尝试获取第四个单元格(dataGridView1.Rows[nRowIndex].Cells[3])并且正如您所说的那样只有3个单元格(列)。只需将您的代码更改为:

textBox2.Text = dataGridView1.Rows[nRowIndex].Cells[2].Value.ToString()

答案 1 :(得分:0)

textBox2.Text = dataGridView1.Rows[nRowIndex].Cells[dataGridView1.Columns.Count -1].Value.ToString() ;

答案 2 :(得分:0)

根据您的上一条评论,我稍微更改了您的代码:

if (dataGridView1.Rows.Count > 0)         
{                
    int nRowIndex = dataGridView1.Rows.Count - 1;              
    dataGridView1.Rows[nRowIndex].Selected = true;              
    if(dataGridView1.Rows[nRowIndex].Cells[2].Value != null)
        textBox2.Text = dataGridView1.Rows[nRowIndex].Cells[2].Value.ToString() ;          } 

答案 3 :(得分:0)

在page_load()

写: - &gt; gvJobCard.PageIndex = Int32.MaxValue;

protected void gvJobCard_RowDataBound(object sender,GridViewRowEventArgs e)

{

gvJobCard.PageIndex = gvJobCard.PageCount - 1; //适用于gvJOBCARD中的DESC顺序

}