2009-04-09 7 views
0

ich eine Linkbutton-Steuerelement in einem Benutzersteuer wie diese haben (Akkordeon ist aus dem AJAX Control Toolkit):Linkbutton Befehlsereignishandler args immer reiht

<cc1:Accordion runat="server"> 
    <Panes></Panes> 
    <HeaderTemplate></HeaderTemplate> 
    <ContentTemplate> 
     <asp:TextBox Text='<%# Bind("Title") %>' runat="server"></asp:TextBox> 
     <asp:LinkButton Text="Update" CommandArgument='<%# Container.DataItem %>' CommandName="ItemUpdate" OnCommand="LinkButton_Command" runat="server"></asp:LinkButton> 
    </ContentTemplate> 
</cc1:Accordion> 

Das Akkordeon in Page_Load gebunden ist:

protected void Page_Load(object sender, EventArgs e) 
{ 
    Accordion1.DataSource = GetACollection(); 
    Accordion1.DataBind(); 
} 

Aber in der Event-Handler-Befehl, egal was ich tue, sind die Argumente immer Strings:

protected void LinkButton_Command(object sender, CommandEventArgs e) 
{ 
     // sender is alway a string (the Text of the clicked button) 
     // e is always a string property of the Container.DataItem object 
} 

Die Strings kommen von den richtigen Objekten (der Button und das gebundene DataItem), aber ich brauche die Objekte selbst (das DataItem besonders).

Was ist los?

Antwort

0

Wäre das nicht Verhalten zu erwarten ..

http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.linkbutton.commandargument.aspx

Eigenschaft Wert Typ: System .. :: String
Ein optionales Argument übergeben an die
Befehlsereignishandler. zusammen mit der
zugeordneten CommandName-Eigenschaft. Der Standardwert
ist String .. ::. Empty.

+0

doh! Du hast recht. Der Debugger ließ mich glauben, ich könnte Objekte passieren, aber Sie haben Recht. Die Eigenschaft akzeptiert nur Zeichenfolgen. –

+0

Keine Sorgen .. Ich aktualisierte mit einem besseren Link .. – madcolor