C# WPF Datagrid的筛选

时间:2021-11-14 23:36:49
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 = ; 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(, ) != "" && 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(, code.Length - );
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;
     }