2010-12-15 5 views
0

Ich habe ein ähnliches Problem wie die in diesem QuestionNested Editierbare Listview gebunden Objekt

Ich habe gefunden man eine Listview innerhalb eines anderen Listenansicht verschachtelt. Der äußere Listview ist an ein Objekt im Codebehind gebunden.

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

Wo someProperty ist eine Liste eines anderen Objekts (mySecondObject) ...

Die innere Listenansicht bearbeitet werden muss, und es wird im Markup auf eine andere Eigenschaft (secondObjectProperty) vom Typ Liste in der gebundenen mySecondObject als solche:

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

Dies funktioniert die Daten anzuzeigen, aber ich kann nicht herausfinden, wie die verschachtelte Listenansicht in den Bearbeitungsmodus zu schalten. Ich behandle den OnItemEditing-Befehl und setze den EditIndex auf die richtige Zeile, aber der Modus des verschachtelten LV ändert sich nie. Ich habe jede erdenkliche Kombination von Updates Panels und Rebinding versuchte sowohl die inneren und äußeren Ansichten verwenden jedoch scheint nichts

heren der LV-Markup (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 

Irgendwelche Ideen zu arbeiten ????

Antwort

0

Ok eine Lösung gefunden. Anstatt die verschachtelte Listenansicht im Markup mit dem Tag "DataSource" zu binden, binde ich sie im ItemDataBound-Ereignis der äußeren Listenansicht.

In diesem Fall suche ich nach einem editItemIndex, den ich als globale Variable speichere, die über das verschachtelte listviews ItemEditing-Ereignis gesetzt wird. Funktioniert perfekt.

0

Haben Sie eines davon in Ihrem <ItemTemplate>?

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

Ich habe eine Bearbeitungsschaltfläche ... die erfolgreich das onemiteiditing-Ereignis auslöst ... Ich habe eine Lösung dafür gefunden, die ich jetzt posten werde. – stephen776