我的代码:
DataTable dt = new DataTable();
dt.Columns.Add("id", typeof(int));
dt.Columns.Add("name", typeof(string));
dt.Rows.Add(1, "ali");
dt.Rows.Add(2, "reza");
dt.Rows.Add(3, "mehdi");
dt.Rows.Add(4, "alireza");
dt.Rows.Add(4, "amirali");
var result = dt.Select("name like '%ali%'");
GridView1.DataSource = result;
GridView1.DataBind();
问题:
not show any record in GridView
答案 0 :(得分:3)
为什么不设置过滤器?
dt.DefaultView.RowFilter ="name like '%ali%'";
GridView1.DataSource = dt.DefaultView;
GridView1.DataBind();
或
var result = dt.Select("name like '%ali%'").CopyToDataTable();
在你的情况下,DataRow[]
的结果可能是绑定失败的原因。
答案 1 :(得分:2)
Gridview没有显示任何行,因为select返回datarow数组,你不能将datarow数组绑定到gridview。
你可以试试这个
var result = dt.Select("name like '%ali%'");
GridView1.DataSource = result.Select(r => r.ItemArray[0]);
GridView1.DataBind();
答案 2 :(得分:0)
如果问题仍然存在,您可以尝试使用此代码。
DataTable dt = new DataTable("Trial");
dt.Columns.Add("id", typeof(int));
dt.Columns.Add("name", typeof(string));
dt.Rows.Add(1, "ali");
dt.Rows.Add(2, "reza");
dt.Rows.Add(3, "mehdi");
dt.Rows.Add(4, "alireza");
dt.Rows.Add(4, "amirali");
DataRow[] result = dt.Select("name like '*%ali%*'");
DataTable dtnew = new DataTable();
dtnew.Columns.Add("id", typeof(int));
dtnew.Columns.Add("name", typeof(string));
foreach (DataRow dr in result)
{
dtnew.ImportRow(dr);
}
GridView1.DataSource = dtnew;
GridView1.DataBind();