2009-07-15 5 views
0

Wie kann man Informationen abrufen, die zum programmgesteuerten Generieren von ASP-Steuerelementen verwendet wurden?Abrufen von Informationen (beim Klicken), die zum programmgesteuerten Generieren von ASP-Steuerelementen verwendet wurden

Zum Beispiel zog ich eine DataTable von Benutzerobjekten aus der Datenbank und habe sie auf einer Seite organisiert, Auflistung Gruppierungen wie eine Liste der Mitarbeiter direkt unter dem Arbeitgeber für jeden Arbeitgeber. Auf der Seite liste ich den Benutzernamen jedes Benutzers als LinkButton auf. Wenn ich auf einen dieser Mitarbeiter klicke, möchte ich die Seite umleiten (was einfach ist) und eine Sitzungsvariable auf die UserId des ausgewählten Benutzers setzen (was nicht so einfach erscheint). Wie kann ich diesen UserId-Wert zurückziehen? Diese Elemente sind nicht mit schönen Namen (wie sie in einer for each-Schleife erzeugt werden) fest codiert.

-Code von Kommentar unten:

Dim lnkbtnPm As New LinkButton ' is my link button. ' 
lnkbtnPm.Text = pmDr.Item("Username") ' where pmDr is my datarow. ' 
lnkbtnPm.CommandArgument = pmDr.Item("UserId")  
lnkbtnPm.CommandName = "CommandNameHere" 
panelToAddControlTo.Controls.Add(lnkbtnPm) 

Thanks :)

Antwort

2

Ich denke, das ist das, was man die CommandName und CommandArgument Eigenschaften des Linkbutton für verwenden würde. Weisen Sie die Benutzer-ID als CommandArgument und eine geeignete Zeichenfolge als CommandName und anschließen die Command Ereignis an einen Ereignishandler:

Sub LinkButton_Command(sender As Object, e As CommandEventArgs) 
    ' e.CommandArgument will contain the user id ' 
End Sub 

aktualisieren

Das Problem ist, dass der Ereignishandler nie angebracht ist. Verwenden Sie AddHandler, um das zu tun:

Dim lnkbtnPm As New LinkButton 
lnkbtnPm.Text = pmDr.Item("Username") ' where pmDr is my datarow. ' 
lnkbtnPm.CommandArgument = pmDr.Item("UserId")  
lnkbtnPm.CommandName = "CommandNameHere" 
AddHandler lnkbtnPm.Command, AddressOf LinkButton_Command 
panelToAddControlTo.Controls.Add(lnkbtnPm) 
+0

Ich habe dies versucht, aber die Subroutine scheint nicht aufgerufen zu werden, wenn der Link-Button geklickt wird. Ist es möglich, dass das Hinzufügen des Verknüpfungsknopfs nicht das Attribut runat = "server" enthält? – Chris

+0

Wie fügen Sie die LinkButton-Steuerelemente hinzu? Hängen Sie den Event-Handler an sie an? –

+0

Dim lnkbtnPm Als neuer LinkButton ist meine Link-Schaltfläche. lnkbtnPm.Text = pmDr.Item ("Benutzername") wobei pmDr mein Datarow ist. lnkbtnPm.CommandArgument = pmDr.Item ("UserId") lnkbtnPm.CommandName = "CommandNameHere" panelToAddControlTo.Controls.Add (lnkbtnPm) – Chris

Verwandte Themen