Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在linqDataSource上搜索有时需要2次单击_C#_Asp.net_Linq To Sql_Search - Fatal编程技术网

C# 在linqDataSource上搜索有时需要2次单击

C# 在linqDataSource上搜索有时需要2次单击,c#,asp.net,linq-to-sql,search,C#,Asp.net,Linq To Sql,Search,我有一个包含linqdatasource和gridView的页面。 有几个文本框可以输入搜索条件。 LinqDataSource_OnSelecting事件按如下方式过滤查询: var query = from d in db.PersonData select d; if (textBoxName.Text != "") var query = query.where(p => p == textBoxName.Text); if (textBox

我有一个包含linqdatasource和gridView的页面。 有几个文本框可以输入搜索条件。 LinqDataSource_OnSelecting事件按如下方式过滤查询:

var query = from d in db.PersonData 
            select d;

if (textBoxName.Text != "")
    var query = query.where(p => p == textBoxName.Text); 

if (textBoxPhone.Text != "")
    var query = query.where(p => p == textBoxPhone.Text); 

e.Result = query;
而btnSearch_Click事件具有以下代码:

gridView.DataBind();
大多数时候它都很好用,但有时我必须点击搜索按钮两次才能看到结果。第一次单击“搜索”时,gridView为空!第二次我有正确的结果。 希望你能澄清为什么有时候会这样。
谢谢

如果手动绑定
Gridview数据源
而不使用
dataset
,则必须始终在页面加载中绑定
Gridview数据源

在web(asp.net)中,它不像Win应用程序,在没有页面加载事件的情况下,您无法将数据源绑定到网格


作为解决方案:
您可以使用
Updatepanle
并将网格放入其中。并在绑定后使用
GridName.DataBind()

有时,您只会得到空白的最可能原因是您所处的页面超出了搜索结果的范围

例如:你在未过滤结果的第10页,点击
搜索,
只得到5页的结果。因此,您当前查看的页面(10)是空白的

LINQ语句完成后,需要将
GridView
重置回第一页

第二个(可能的)问题是无法保证所有事件处理程序的顺序。(请参阅。)即,您不能指望
LinqDataSource_on选择
btnSearch_单击
首先触发,并且您在
单击
处理程序中有
数据绑定
删除
btn搜索\u单击事件处理程序(或将其保留为空)并使用,它肯定会在
LinqDataSource之后触发。选择时:

protected void LinqDataSource_Selected(object sender, LinqDataSourceStatusEventArgs e) {
  gridView.DataBind();
  gridView.PageIndex = 0;  // back to beginning when searching
}

您是否确认您的按钮事件在您第一次单击时触发?你在什么地方发现了错误吗?没有任何错误。我不明白的是,大多数时候搜索都是按要求进行的。事实上,我也有类似的问题:但在这个网站上我的问题没有解决方案。