ASP.NET GridView.DataBind pas l'actualisation de la GridView

Pour commencer je suis en utilisant un contrôle MultiView à l'étape utilisateurs par le biais de la recherche. La première page dans le MultiView est juste une zone de recherche avec un bouton pour exécuter la recherche.

La deuxième page a la GridView, mais je tiens à garder la zone de recherche et un bouton de l'utilisateur à la recherche de nouveau si ils n'ont pas trouver l'utilisateur qu'ils ont été recherchez.

Lorsque vous effectuez une recherche à partir de la page et passer à la page 2 de la GridView montre les résultats corrects. Mais quand il est sur la deuxième page, avec à la fois le contrôle GridView et de la recherche, de la GridView n'est pas mise à jour. Ci-dessous 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;
    }
}
C'est un comportement étrange, je vous suggère d'essayer une procédure stockée.
Si une procédure stockée ou SQL directe est utilisée fait pas de différence ici. C'est l'ASP.NET la liaison de données qui n'est pas le cas.
désolé mon anglais, ce que je voulais dire, c'est qu'il m'est arrivé, et après j'ai cherché sur google j'ai trouvé beaucoup de gens avec le même problème et se fixe à l'aide d'une procédure stockée et n'a donc I. c'est pourquoi j'ai suggéré d'utiliser une procédure stockée.
Tout comme une note de côté... ce code ressemble à une attaque par injection SQL en attente de se produire.
Oui, c'est fait, j'ai inclus le SQL de cette façon, pour plus de clarté.

OriginalL'auteur jWoose | 2010-02-13