2010-12-15 40 views
0

J'ai un problème similaire à celui qui se trouve dans cette QuestionNested éditable Listview lié à l'objet

J'ai un ListView niché à l'intérieur d'un autre ListView. La Listview externe est liée à un objet dans le codebehind.

listViewOuter.DataSource = myObject[0].someProperty; 
listViewOuter.DataBind(); 

Où someProperty est une liste d'un autre objet (mySecondObject) ...

Le Listview intérieur doit être modifiable et il est lié dans le balisage à une autre propriété (secondObjectProperty) de la liste de type dans la mySecondObject en tant que tel:

DataSource='<%# Eval("secondObjectProperty")%>' 

Cela fonctionne bien pour afficher les données, mais je ne peux pas comprendre comment mettre le listview imbriqué en mode édition. Je gère la commande OnItemEditing et la définition de l'EditIndex sur la ligne correcte, mais le mode du LV imbriqué ne change jamais. J'ai essayé toutes les combinaisons imaginables des mises à jour des panneaux et reconsolidation les deux listviews intérieur et extérieur mais rien ne semble fonctionner

Heres le balisage LV (psuedocode)

<updatePanel> 
<asp:ListView ID="outerListView" runat="server"> 
    <layouttemplate here> 

    <itemTemplate> 
    <aspListView ID="innerListView" DataSource="<%# Eval("secondObjectPropery")% onitemEditng="editMethod"> 


    </asp:LsitView> 
    </itemTEmplate> 
</asp:ListView> 

</updatePanel 

Toutes les idées ????

Répondre

0

Ok trouvé une solution. Au lieu de lier la listview imbriquée dans le balisage avec la balise "DataSource", je la lie dans l'événement ItemDataBound de la listview externe.

Dans cet événement, je vérifie un editItemIndex que je stocke en tant que variable globale qui est définie via l'événement ItemEditing ListView imbriqué. Fonctionne parfaitement.

0

Avez-vous un de ceux-ci dans votre <ItemTemplate>?

<asp:LinkButton ID="EditButton" runat="server" CausesValidation="False" CommandName="Edit" 
         Text="Edit" /> 
+0

J'ai un bouton d'édition ... qui déclenche avec succès l'événement onitemeiditing ... J'ai trouvé une solution pour cela que je vais publier maintenant. – stephen776