2009-03-31 9 views
0

Ich habe eine EmptyDataTemplate in meinem asp: ListView, die ich verwenden möchte, um einen neuen Datensatz einzufügen.Datensatz mit EmptyDataTemplate in asp einfügen: ListView

Ich habe arbeiten Einfügen in der InsertItemTemplate ... Ich dachte, dass ich die InsertItemTemplate in die Emptydatatemplate kopieren konnte, auf Klick einfügen dies den Fehler

Insert can only be called on an insert item. Ensure only the InsertTemplate has a button with CommandName=Insert. 

Wie kann ich die Emptydatatemplate zum Einfügen einer Zeile verwenden gibt? Muss ich den OnClick der Schaltfläche verwenden, um auf die Werte innerhalb der EmptyDataTemplate zuzugreifen und eine Insert-Datei selbst zu erstellen?

Ich verwende LinqDataSource

Antwort

1

No way, wenn wollen Daten in leeren Datenvorlage einzufügen.

2

Vielleicht haben Sie es herausgefunden haben jetzt aber wenn man die InsertItemPosition auf etwas anderes als None festgelegt wird die EmptyData Vorlage nicht also gemacht werden immer die Vorlage einfügen zeigen

Sie können hier mehr lesen http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.listview.emptydatatemplate.aspx

+0

Das ist mein Problem gelöst: Wie kann ich Artikel in meinem Listview einfügen, wenn ich gerade bin ab und mein Datensatz ist leer? - Verwenden Sie InsertItemPosition = "LastItem". – russds

0

Es ist möglich, eine Einfügung von der EmptyDataTemplate durch Handarbeit der Einlage durchzuführen. Ich verwende eine Listenansicht, um eine statische Anzahl von Zeilen basierend auf einem eindeutigen gefilterten Element anzuzeigen. Ich liste im Grunde alle statischen Attribute eines Objekts auf. Wenn ein neues Objekt gefiltert wird, dem keine Attribute zugeordnet sind, verwende ich die EmptyDataTemplate der Listenansicht, um eine HTMLTabelle anzuzeigen, die asp.net-Steuerelemente zum Erfassen von Daten enthält. Ich habe eine Befehlsschaltfläche in der Tabelle, die ich mit ListView_ItemCommand auswerte. Wenn das CommandName dem der Schaltfläche "Einfügen" in dem EmptyDataItem entspricht, verwende ich die ListView.Controls (0) .FindControl Methode, um meine Tabelle zu suchen. Ich durchlaufe dann meine Tabelle und führe Einfügungen auf die Daten durch, die innerhalb jeder Reihe gefunden werden. Ich habe den Weg gefunden, ein Steuerelement in der HTML-Tabelle zu finden. In meinem Code greife ich tatsächlich eine Reihe von Steuerelementen, bastle dann die SQL und benutze eine SQLConnection, um die Einfügung durchzuführen.

Protected Sub ListView_ItemCommand(sender As Object, e As System.Web.UI.WebControls.ListViewCommandEventArgs) Handles ListView.ItemCommand 

    Select Case e.CommandName 
    Case "Submit" 
     Dim edt As HtmlTable = ListView.Controls(0).FindControl("myhtmltable") 
     Dim ddl As DropDownList = CType(edt.FindControl("mydropdownlist"), DropDownList) 
     'Perform Insert 
    Case "Some other commandname" 
    End Select 
End Sub 

Sie müssen immer noch Fehler überprüfen und Databind() und aktualisieren Sie Ihre Listview.

Ist dies der beste Weg. Vielleicht nicht ... Aber es ist möglich.

~ Ian