2011-08-02 4 views
0

J'ai un gridview chargé à partir d'un DataSet, dans lequel la plupart des champs sont générés par des modèles.Ajout de nouvelles colonnes à GridView avec un nouveau DataSource

L'une d'elles est une Image qui change en fonction de la valeur renvoyée par l'ensemble de données. Voici un exemple:

<asp:TemplateField HeaderText="Attention"> 
    <ItemTemplate> 
    <asp:Image ID="alertFlag" runat="server" ImageUrl='<%# Eval("alertFlag").ToString().Equals("True") ? "~/Images/Warning-32.png" : "" %>' /> 
    </ItemTemplate> 
</asp:TemplateField> 

Maintenant, j'ai une liste déroulante, dans lequel, en fonction de ce qui est choisi, une nouvelle demande à la base de données est faite, et de nouvelles colonnes sont ajoutées, mais les précédentes doivent rester . Dois-je créer un nouveau GridView ou comment ajouter de nouvelles colonnes, les garder cachées, et les montrer quand l'événement approprié est déclenché. ceci inclut le chargement de nouvelles données de la base de données et la liaison à la grille. Et comment pourrais-je ajouter la condition ci-dessus par programme?

Merci.

Répondre

0

Je dirais que vous utiliserez le même gridview et aurez la colonne avec l'ensemble visible à vrai ou faux. Je suggérerai que vous avez une propriété dans le code derrière tel que ShowColumnX qui retournera vrai ou faux basé sur la valeur dropdown. Dans l'aspx, vous lierez ensuite la propriété visible à cette valeur, par exemple

Si votre colonne existante est configurée pour lier correctement la valeur à un champ de votre source de données, vous n'avez rien à faire de différent. ont déjà fait comme la reliaison de la source de données sur la publication.

Questions connexes