none
dataGridview更新後如何選取原先選取的row? RRS feed

  • 問題

  • 請問一下....當dataGridview更新後…

    我要如何讓選取列回到之前所選的那列上?

    我現是用下面這種作法:

    i是用來放上一次所選的代碼~

    我把資料binding後…重新對所有的資料比對一次~

    如果找到代碼一樣的…就把那行設成Selected = true

    但是當資料量一大…而且所選的又是最後面的話…速度會變慢~

    請問有其他方法能達到一樣的效果嗎?

     

     

    private void MethodDepartment(int i)
            {
                strID = "部門管理";
                SqlDataAdapter sda = new SqlDataAdapter("select * from 部門資料", conn);
                DataTable dt = new DataTable();
                sda.Fill(dt);
                dataGridView1.DataSource = dt;
                for(int k = 0 ; k<dataGridView1.Rows.Count ;k++)
                {
                    if (Convert.ToInt32( dataGridView1.Rows[k].Cells["部門代碼"].Value) == i)
                    {
                        dataGridView1.Rows[k].Selected = true;
                        break;
                    }
                   
                }

            }

    2010年3月31日 上午 02:50

解答

  • 用 BindingSource當做 DataGridView與DataTable間的中介

    詳見MSDN文件庫

    [BindingSource 類別 ]

    [BindingSource 元件 ]


    MSDN 文件庫很重要
    回應幫助你的人是一種禮貌, 良好的禮貌有助於激發大家對你問題回應的熱情
    進步的人會找尋自己程式中的缺點,半桶水則把自己程式的錯誤推到不相干事物的身上
    • 已標示為解答 Lolota Lee 2010年4月7日 上午 02:17
    2010年3月31日 上午 03:17
    版主