C# WPF Datagrid的筛选

public static void SearchResult(DataGrid dg,string condition)

        {

            #region

            string code = string.Empty;

            DataView dv = dg.ItemsSource as DataView;

            //if (condition.Substring(0, 1) != "0" || Regex.IsMatch(condition, @"^[+-]?\d*[.]?\d*$"))

            {

                for (int i = 0; i < dv.Table.Columns.Count; i++)

                {

                    if (dv.Table.Columns[i].DataType == typeof(System.Int32) || dv.Table.Columns[i].DataType == typeof(System.Byte))

                    {

                        if (condition.Substring(0, 1) != "0" && Regex.IsMatch(condition, @"^[+-]?\d*[.]?\d*$"))

                        {

                            code += (string)dv.Table.Columns[i].ToString() + " = " + condition + " or ";

                        }

                    }

                    else if (dv.Table.Columns[i].DataType == typeof(System.DateTime))

                    {

                        try

                        {

                            code += (string)dv.Table.Columns[i].ToString() + " = '" + Convert.ToDateTime(condition) + "' or ";

                        }

                        catch (Exception)

                        {

                        }

                    }

                    else

                    {

                        code += (string)dv.Table.Columns[i].ToString() + " = '" + condition + "' or ";

                    }

                }

            }

            if (!string.IsNullOrEmpty(code))

            {

                code = code.Substring(0, code.Length - 3);

                MessageBox.Show(code);

                dv.RowFilter = code;

                //dv.Sort = "ID ASC";

                dg.ItemsSource = dv;

            }

            #endregion

            //DataTable dv = (dg.ItemsSource as DataView).Table;

            //DataTable dtNew = dv.Copy();

            //dtNew.Clear();

            //foreach (DataRow row in dv.Rows)

            //{

            //    for (int i = 0; i < dv.Columns.Count; i++)

            //    {

            //        if (row[i].ToString() == condition)//全匹配查询//row[i].ToString().Contains(condition)//模糊查询
             // { 
                    
// dtNew.Rows.Add(row.ItemArray);
                    // break;
            
// }
          // }
        //}
        
//dg.ItemsSource = dtNew.DefaultView;
     }

 

你可能感兴趣的:(datagrid)