0

我正在使用 Search As You Type in C#,如此处所述http://www.codeproject.com/Articles/138595/Search-As-You-Type-in ​​-C

如果基础表中的数据发生更改,则此方法可以正常工作,除非我刷新所有已完成多次搜索但可以找到更新绑定源的方法,否则它永远不会显示在数据网格中

//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;
}
4

1 回答 1

0

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

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

于 2013-08-16T19:12:38.757 回答