我有两个文本框。一种是键入CustomerId
,另一种是显示客户名称。
我想要做的是:我想在CustomerName
输入时获取CustomerId
文本框中的搜索结果(获取与CustomerId
相关的相关客户名称)。这不是自动完成的。我想在不按文本框中输入或按下按钮的情况下获得结果。
这样做的最佳方法是什么。我使用了textbox_textchanged
事件。还有其他更好的方法吗?我正在使用实体框架。
答案 0 :(得分:3)
您可以使用TextChanged
event.Here就是一个例子:
if(txtCustomerId.Text.Length > 0)
{
int id;
if(int.TryParse(txtCustomerId.Text, out id))
{
using (var ctx = new MyDbContext())
{
// get customer name by Id, for example:
var name = ctx.Customers.Where(c => c.CustomerId == id)
.Select(c => c.CustomerName)
.FirstOrDefault();
if (name != null) txtCustomerName.Text = name;
}
}
}
答案 1 :(得分:3)
您可以使用textbox_textchanged事件,但是,您要考虑的一件事是,为了使其工作,您将需要在文本值更改时触发数据库查询。在每次按键操作时执行此操作将是多余的,因此您将要以某种方式限制事件。 (反应式扩展为此提供了一些很棒的功能)。之后,您将必须使用实体框架查询中的结果来填充文本框。没有看到任何来自您的代码的尝试,更难以提供更具体的建议,但这是您正在谈论的功能通常实现的方式。