Pour commencer, j'utilise un contrôle MultiView pour guider les utilisateurs dans la recherche. La première page dans MultiView est juste une boîte de recherche avec un bouton pour préformer la recherche.ASP.NET GridView.DataBind ne pas actualiser le GridView
La deuxième page a le GridView, mais je voudrais garder le champ de recherche et le bouton pour l'utilisateur à rechercher à nouveau s'ils n'ont pas trouvé l'utilisateur qu'ils recherchaient.
Lorsque vous effectuez une recherche à partir de la première page et passez à la page 2, GridView affiche les résultats corrects. Mais quand il est sur la deuxième page avec GridView et la recherche, GridView ne se met pas à jour. Voici le code que j'utilise.
//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;
}
}
Ceci est un comportement étrange, je vous suggère d'essayer une procédure stockée. –
@nmiranda, L'utilisation d'une procédure stockée ou d'un SQL direct ne fait aucune différence ici. C'est la liaison de données ASP.NET qui ne se produit pas. – Eilon
@Eilon, désolé par mon anglais, ce que je voulais dire, c'est que cela m'est arrivé et après avoir googlé j'ai trouvé beaucoup de gens avec le même problème et ils ont corrigé en utilisant une procédure stockée et moi aussi. utiliser une procédure stockée. –