2010-09-16 7 views
0

J'ai GridView lié à une liste. Dans la mise en page que j'ai créé suivant champ de modèle:Liaison de GridView à la collection générique à l'aide de TemplateField

<asp:TemplateField HeaderText="Phrase"> 
    <ItemTemplate> 
     <asp:TextBox ID="phraseTextBox" runat="server" Text='<%# Bind("Phrase") %>'/> 
    </ItemTemplate> 
</asp:TemplateField> 

Mais après avoir changé le contenu de toute zone de texte dans la colonne « Phrase » ma liste ne reflète pas les changements.

Ce que je fait de mal? :)

Répondre

0

ItemTemplate sera utilisé uniquement pour l'affichage/vue objectif. Vous devez avoir EditItemTemplate pour spécifier comment l'interface utilisateur sera lors de la modification de la ligne. Non seulement cela, mais vous devez également ajouter un bouton/lien à la ligne pour le pousser dans un mode d'édition.

Lecture de l'article this de MSDN qui explique comment modifier les données à l'aide de la vue de grille. Vérifiez l'exemple dans la section "Ajout de contrôles de validation à l'interface d'édition" pour l'utilisation de EditItemTemplate.

+0

Oui, mais je dois faire la ligne modifiable sans changer explicitement. Pouvons-nous changer implicitement de mode quand, par exemple, l'utilisateur fait la mise au point de ma zone de texte? – DixonD

+0

@DixonD, malheureusement, GridView n'est pas orienté vers une telle fonctionnalité. Il permet d'éditer une ligne à la fois, il a donc besoin d'un événement au niveau de la ligne pour passer en mode édition, puis sauvegarder/annuler le bouton pour quitter le mode. – VinayC

+0

Peut-être que vous pouvez donner des conseils sur ce qu'il faut utiliser si GridView n'est pas suffisant pour faire une telle fonctionnalité? – DixonD

-1

Dans cette ligne

<asp:TextBox ID="phraseTextBox" runat="server" Text='<%# Bind("Phrase") %>'/> 

Je vais utiliser Eval et ne pas utiliser Bind

<asp:TextBox ID="phraseTextBox" runat="server" Text='<%# Eval("Phrase") %>'/> 

Cordialement

+0

Je pense qu'il devrait être clair que j'ai besoin d'une liaison bidirectionnelle. – DixonD

Questions connexes