使用组合框过滤数据网格

时间:2012-11-20 07:16:51

标签: c#-3.0

我创建了一个像这样的数据网格视图

public void gridviewsetup()
    {
      tbl_Aplication.Columns.Add("1", "Empid");
        tbl_Aplication.Columns.Add("2", "Emp no");
        tbl_Aplication.Columns.Add("3", "Emp Name");
        tbl_Aplication.Columns.Add("4", "Department ");
        tbl_Aplication.Columns.Add("5", "Designation");
        tbl_Aplication.Columns.Add("6", "Shift");
        tbl_Aplication.Columns.Add("7", "Start Time");
        tbl_Aplication.Columns.Add("8", "End Time");
        tbl_Aplication.Columns.Add("9", "OT");
        tbl_Aplication.Columns.Add("10", "Reversed Swipe Out");            
        tbl_Aplication.RowTemplate.Height = 18;            
    }

我已填充数据表以填充数据dgridview

 public void filldatagrid()
    {
        if (cmb_dept.Text.Trim() != "")
        {



Datatable employedata = empreg.getallemployeeshiftdetails(int.Parse(cmb_dept.SelectedValue.ToString()), Program.LOCTNPK);

          tbl_Aplication.Rows.Clear();
        tbl_Aplication.DataSource = null;
        for (int i = 0; i < employedata.Rows.Count; i++)
        {

            tbl_Aplication.Rows.Add();
            tbl_Aplication.Rows[i].Cells[1].Value = employedata.Rows[i][0];

            tbl_Aplication.Rows[i].Cells[2].Value = employedata.Rows[i][1];
            tbl_Aplication.Rows[i].Cells[3].Value = employedata.Rows[i][2];
            tbl_Aplication.Rows[i].Cells[4].Value = employedata.Rows[i][3];
            tbl_Aplication.Rows[i].Cells[5].Value = employedata.Rows[i][4];
            tbl_Aplication.Rows[i].Cells[6].Value = employedata.Rows[i][5];
            tbl_Aplication.Rows[i].Cells[7].Value = employedata.Rows[i][6];   
            tbl_Aplication.Rows[i].Cells[8].Value = employedata.Rows[i][7];
            tbl_Aplication.Rows[i].Cells[9].Value = 0;
            tbl_Aplication.Rows[i].Cells[10].Value = employedata.Rows[i][7];           


        }
    }

}

现在我想使用在组合框中选择的名称过滤数据网格中的数据而不返回数据库,我这样做但是显示错误

   private void cmb_designation_SelectedIndexChanged(object sender, EventArgs e)
    {
        if (desgflag != 0)
        {
            if (cmb_dept.SelectedValue!=null )
            {

           // tbl_Aplication.DataSource = employedata;
                ((DataTable)tbl_Aplication.DataSource).DefaultView.RowFilter = " designationnName like '%" + cmb_dept.Text.Trim() + "%' ";
         }
        }
    }

1 个答案:

答案 0 :(得分:0)

我做到了

private void cmb_department_SelectedIndexChanged(object sender, EventArgs e)
        {

            try
            {
                if (cmb_department.Text.Trim() == "" || cmb_department.Text.Trim() == null)
                {

                    tbl_DestinationData.DataSource = dt;
                }

                else
                {
                    ((DataTable)tbl_DestinationData.DataSource).DefaultView.RowFilter = " Dept like '%" + cmb_department.Text.Trim() + "%' ";

                }



            }
            catch (Exception )
            {
                throw;
            }

    }