在C#中键入时搜索

时间:2013-08-16 18:58:27

标签: c# search types

我正在使用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;
}

1 个答案:

答案 0 :(得分:0)

我在这里的经历是有限的,但我最近也遇到了类似的问题。如果您正在处理Web表单(如果您遇到此问题,我认为您就是这样),因为数据集存储在服务器端,所以如果没有调用更新的事件,您无法强制客户端刷新其显示方法或页面重新加载。

您可以使用一些ASP.net内置的AJAX工具来解决此问题,例如将DataView放在UpdatePanel中并添加更新条件。 (一种草率但有效的方法是更新计时器)