Frage

Ich bin writting einen einfachen Prototyp Frontend mit einer Gridview, die über Funktion ausgefüllt ist, anstatt direkt Quelle zu einer SqlServer Daten verknüpft werden.

So kann ich eine Zeile / Datensatz aus Tabelle löschen / zugrundeliegende Datenbank I zur Zeit bin

  1. Einstellen der AutoGenerateDeleteButton = true
  2. Anzeige des eindeutigen Datensatz-IDs in der ersten Spalte
  3. Umgang mit dem RowDeleting Ereignisse
  4. Abrufen der ID durch die grid.Rows bekommen [e.RowIndex] .Cells [idIndex] .Text
  5. Passing diese Zahl durch auf eine Funktion, die das Löschen
  6. tut

Das scheint ganz gut zu funktionieren, aber ich würde lieber nicht die IDs für die Benutzer angezeigt werden an sie bedeuten nichts für sie.

Ich habe versucht, die ID-Spalte die Visible-Eigenschaft auf false gesetzt, aber dies verursacht Schritt 4 über einen leeren String zurück - und so kein Datensatz gelöscht

.

Wie speichere ich die hidded-ID-Nummer mit jeder Zeile?

Oder soll ich nur über diesen völlig falschen Weg?

Follow-up zu Antworten:

Danke für die beiden Antworten, endete DataKeyNames Weg gehen Erics nach oben. Für andere Menschen neu in ASP.NET, wie ich bin, habe ich die Schritte verwendet, in denen

  • Zwischen den Zeilen, in denen ich die Gitter Datasource und rief DataBind (), habe ich

    grid.DataKeyNames = new string[] {"id"};

  • Dann in der Funktion der RowDeleting ich halten meine ID bekam Umgang mit

    grid.DataKeys[e.RowIndex].Value

War es hilfreich?

Lösung

Gridview hat eine DataKeyNames Eigenschaft. Wenn Sie eine Datenquelle an das Gitter binden, stellen Sie die DataKeyNames (in der Regel mit nur einem Namen, Ihr PK-Feld). Sie zeigen nicht die PK, aber Sie können von Code-Behind um es zu bekommen.

Andere Tipps

Visible = false bedeutet Sie machen nicht auf der Seite. Was Sie wollen, ist es entweder ein Vorlagenfeld zu machen und einen Hidden, um den Wert zu halten oder den Stil auf dem Steuerelement gesetzt „display: none;“. Dies wäre der Fall, wenn der Client-Seite Code Zugriff auf den Wert für einen Ajax-Aufruf oder etwas benötigt.

Ansonsten verwenden Sie die DataKeyNames Eigenschaft als @Eric Z Beard schlägt.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top