如何突出显示网格视图的最后插入记录?

时间:2013-08-06 04:37:23

标签: c# asp.net gridview

我想突出显示网格视图中最后插入的记录。在我的网格视图中,我有一个主键列。新插入的行按照该主键的升序排列。现在我想突出显示最后插入的行。从我写的这样的搜索,但它显示突出显示的网格视图的最后一行,而不是新插入的行。请帮忙。我的代码在这里,

   int lastRowIndex = 0;

     if(!IspostBack)
       {
  string select_string="SELECT student_name,student_id,student_nric,student_group FROM student_details WHERE student_group='"+groups[0].ToString().Trim()+"' ";
        for(int i=1;i<groups.Count;i++)
        {
            select_string+= " or student_group='"+groups[i].ToString().Trim()+"'";    
        }

        if(Session["STUDENT_ID"]!=null)
        {

        for(int i=0;i<student_id_list.Count;i++)
        {
            select_string+= " or student_id='"+student_id_list[i].ToString().Trim()+"'";    

        }
        }
     SqlDataAdapter adapter = new SqlDataAdapter(select_string, con);
        adapter.Fill(ds);
        GridView2.DataSource = ds;
        GridView2.DataBind();
        con.Close();


        foreach (GridViewRow grv in GridView2.Rows)
        {
            if (grv.RowType == DataControlRowType.DataRow)
            {
                if (grv.RowIndex > lastRowIndex)
                {
                    lastRowIndex = grv.RowIndex;
                }
            }
        }
        lastRowIndex = GridView2.Rows.Count - 1;

        GridView2.Rows[lastRowIndex].BackColor = System.Drawing.Color.LightGoldenrodYellow;

    }
}

}

2 个答案:

答案 0 :(得分:1)

我认为你的问题在这里:

lastRowIndex = GridView2.Rows.Count - 1;

你总是将lastRowIndex设置为同一个...

您可以使用RowsAdded事件:

private void grv_RowsAdded(object sender, DataGridViewRowsAddedEventArgs e)
{
    // the new row = e.RowIndex
}

答案 1 :(得分:0)

您可以执行几种解决方案 第一个是创建一个变量,该变量可以在不同的视图状态下访问,例如:

private bool AddedSuccesfuly
    {
        get
        {
            return (bool)ViewState["flag"];
        }
        set
        {
            ViewState["flag"] = value;
        }
    }

下一次页面加载时,由于尚未插入任何行,因此将其值添加为false 然后在insertRow的按钮click事件上,将其值设置为true 而在datarowbound方法或绑定方法上,是否在这样的ifmanmant上确实很重要:

if (AddedSuccesfuly == true)
        {
            gridviewname.Rows[gridviewname.Rows.Count1].BackColorSystem.Drawing.Color.Beige;
        }

我还建议您将主键设置为身份或等效的自动增量,并且不要在gridview中显示它,因为不需要学生查看其ID。