我正在使用C#中键入搜索,如此处所述http://www.codeproject.com/Articles/138595/Search-As-You-Type-in-C
如果基础表中的数据有效,则可以正常工作 它永远不会出现在datagrid中的更改,除非我刷新所有内容 已完成多次搜索,但可以找到获取绑定源的方法 更新
//This method is fired by the KeyUp event handler on the textbox.
//The purpose of this method is to take the text from the search
//box, split it up into words, and then create and assign a filter
//statement that will do a LIKE comparison on each of the selected
//search fields. Each word's filter statement is AND'ed together
private void txtSearch_KeyUp(object sender, KeyEventArgs e)
{
string outputInfo = "";
string[] keyWords = txtSearch.Text.Split(' ');
foreach (string word in keyWords)
{
if (outputInfo.Length == 0)
{
outputInfo = "(Name LIKE '%" + word + "%' OR ProductModel LIKE '%" +
word + "%' OR Description LIKE '%" + word + "%')";
}
else
{
outputInfo += " AND (Name LIKE '%" + word + "%' OR ProductModel LIKE '%" +
word + "%' OR Description LIKE '%" + word + "%')";
}
}
//Applies the filter to the DataView
myView.RowFilter = outputInfo;
}
答案 0 :(得分:0)
我在这里的经历是有限的,但我最近也遇到了类似的问题。如果您正在处理Web表单(如果您遇到此问题,我认为您就是这样),因为数据集存储在服务器端,所以如果没有调用更新的事件,您无法强制客户端刷新其显示方法或页面重新加载。
您可以使用一些ASP.net内置的AJAX工具来解决此问题,例如将DataView放在UpdatePanel中并添加更新条件。 (一种草率但有效的方法是更新计时器)