要开始我正在使用MultiView控件来引导用户搜索。 MultiView中的第一页只是一个搜索框,其中包含一个用于执行搜索的按钮。ASP.NET GridView.DataBind不刷新GridView
第二页有GridView,但我想保留搜索框和按钮供用户再次搜索,如果他们没有找到他们正在寻找的用户。
当您从第1页进行搜索并移至第2页时,GridView将显示正确的结果。但是当它在GridView和搜索的第二页上时,GridView不会更新。以下是我正在使用的代码。
//GridView = SearchResults
//SqlDataSource = AddPlayerDataSource
//MultiView = PlayerSearchView
protected void PlayerSearch_Click(object sender, ImageClickEventArgs e)
{
string userId = User.Identity.Name.ToString();
if (SearchText.Text != "" && !userId.Equals(""))
{
GridView SearchResults = (GridView)PlayerSearchView.FindControl("SearchResults");
string SqlSelect = "SELECT [id], [username] FROM [users] WHERE [username] LIKE '%" + SearchText.Text + "%'";
AddPlayerDataSource.SelectCommand = SqlSelect;
SearchResults.DataBind();
if (PlayerSearchView.ActiveViewIndex != 1)
PlayerSearchView.ActiveViewIndex = 1;
}
}
这是一个奇怪的行为,我建议你尝试一下存储过程。 – 2010-02-13 02:24:04
@nmiranda,无论是使用存储过程还是直接使用SQL都没有什么不同。这是没有发生的ASP.NET数据绑定。 – Eilon 2010-02-13 02:43:28
@Eilon,对不起我的英语,我的意思是它发生在我身上,在我Google搜索后,我发现许多人有同样的问题,他们固定使用存储过程,我也是这样。这就是为什么我建议使用存储过程。 – 2010-02-13 15:35:41