2009-10-02 7 views
1

J'ai une liste avec un EditTemplate. Si j'ai un élément dans le ListView, le code suivant renvoie une exception null:Pourquoi ce code ne trouve-t-il pas ma zone de texte dans ma ListView?

if((TextBox)this.lvwColors.EditItem.FindControl("txtColor")) != null) 
{ 
    this.Color =  
    ((TextBox)this.lvwColors.EditItem.FindControl("txtColor")).Text.Trim(); 
} 

Il ne jette pas une erreur si j'ai deux articles dans mon listview.

L'autre chose étrange est qu'il ne lance une erreur que sur un serveur de production, mais lorsque je teste en local, je ne reçois pas l'erreur. Est-ce que quelqu'un sait pourquoi ce comportement pourrait exister?

Voici une partie EditTemplate du balisage:

<EditItemTemplate>   
    <asp:TextBox ID="txtColor" runat="server" 
       Text='<%# Eval("Color").ToString().Trim() %>' 
</EditItemTemplate> 
+0

S'il vous plaît poster plus de votre code - la ligne * complet * en haut et le balisage auquel il fait référence. –

+0

J'ai mis à jour du code et du code. – Xaisoft

+0

Ajout d'un exemple GridView à ma réponse, veuillez confirmer si vous utilisez GridView ou ListView et éditer votre question en conséquence. –

Répondre

1

ListView.ItemEditing Event:

ListView:

protected void yourListView_ItemEditing(Object sender, ListViewEditEventArgs e) 
    { 
    ListViewItem item = yourListView.Items[e.NewEditIndex]; 

    if((TextBox)item.FindControl("txtColor") != null) 
    { 
     this.Color =  
      ((TextBox)item.FindControl("txtColor")).Text.Trim(); 
    } 

    } 
+0

Je ne vois pas un événement appelé ItemEditing, est-ce la même chose que l'événement RowEditing. – Xaisoft

+0

Voici la liste des événements ListView: http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.listview.aspx –

+0

Je pense que l'utilisation d'un GridView et non un ListView –

Questions connexes