使用 linq 和 datagrid 自动完成搜索的问题
我想做一个搜索,将结果填充到带有 LINQ 的 Gridview 中。
这是我使用 Linq 之前的代码,运行良好:
foreach (DataRow dr in dt.Select("Name like '" + txtSearch.Text + "%'"))
{
dtable.ImportRow(dr);
}
在我的 linq 代码中,我使用 bsUser
作为 BindingSource。
private void txtSearch_TextChanged(object sender, EventArgs e)
{
string input = txtSearch.Text.Trim().ToLower();
if (input.Length <= 0) return;
IList<User> u = (bsUser.Filter? select?
.Where(x => (x.Name.ToLower().StartsWith(input)
&& (x.RoleId == (int)cbRole.SelectedValue))).ToList());
bsUser.DataSource = u;
}
我遇到的问题是,如果 u
返回 0 行,那么绑定到 bsUser
的 Gridview 将不再有数据。 datasource.count() = 0
有人能给我一个解决方法或建议如何解决这个问题吗?
I would like to do a search which populates the result to a Gridview with LINQ.
This is the code before I used Linq which works fine:
foreach (DataRow dr in dt.Select("Name like '" + txtSearch.Text + "%'"))
{
dtable.ImportRow(dr);
}
In my linq code, I used bsUser
as the BindingSource.
private void txtSearch_TextChanged(object sender, EventArgs e)
{
string input = txtSearch.Text.Trim().ToLower();
if (input.Length <= 0) return;
IList<User> u = (bsUser.Filter? select?
.Where(x => (x.Name.ToLower().StartsWith(input)
&& (x.RoleId == (int)cbRole.SelectedValue))).ToList());
bsUser.DataSource = u;
}
The problem I have is, if the u
returns 0 rows, then my Gridview which bound to the bsUser
will no longer have data. datasource.count() = 0
Could someone give me a workaround or advice on how I could tackle this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
嗨,我想我已经通过这种方式做到了。不过看起来不错..
hi i think i have done that by using this way. Looks good though..