2011-03-21 60 views
33

Tengo un control ASP LinkButton y me preguntaba cómo enviar un valor al código detrás cuando se hace clic en él? ¿Es eso posible con este evento?LinkButton Enviar valor al código detrás de OnClick

<asp:LinkButton ID="ENameLinkBtn" runat="server" 
    style="font-weight: 700; font-size: 8pt;" 
    onclick="ENameLinkBtn_Click" ><%# Eval("EName") %></asp:LinkButton> 

Respuesta

59

Sólo añadir al parámetro CommandArgument y leerlo fuera en la Click manejador:

<asp:LinkButton ID="ENameLinkBtn" runat="server" 
    style="font-weight: 700; font-size: 8pt;" CommandArgument="YourValueHere" 
    OnClick="ENameLinkBtn_Click" > 

Luego en su clic evento:

protected void ENameLinkBtn_Click(object sender, EventArgs e) 
{ 
    LinkButton btn = (LinkButton)(sender); 
    string yourValue = btn.CommandArgument; 
    // do what you need here 
} 

También puede establecer el argumento CommandArgument al enlazar si está utilizando el LinkButton en los controles enlazables haciendo:

CommandArgument='<%# Eval("SomeFieldYouNeedArguementFrom") %>' 
+2

Se puede declarar el remitente como LinkButton y pasa el encasillamiento: protected void ENameLinkBtn_Click (LinkButton sender, EventArgs e) { string yourValue = sender.CommandArgument; // haga lo que necesite aquí } (Lo intenté, pero NO PUEDO formatear el código) – RocketCity

1

Try y recuperar la propiedad de texto del botón de enlace en el código detrás:

protected void ENameLinkBtn_Click (object sender, EventArgs e) 
{ 
    string val = ((LinkButton)sender).Text 
} 
2

Añadir un atributo CommandName, y opcionalmente un atributo CommandArgument, a su mando a LinkButton. A continuación, configure el atributo OnCommand con el nombre de su controlador de eventos Command.

<asp:LinkButton ID="ENameLinkBtn" runat="server" CommandName="MyValueGoesHere" CommandArgument="OtherValueHere" 
      style="font-weight: 700; font-size: 8pt;" OnCommand="ENameLinkBtn_Command" ><%# Eval("EName") %></asp:LinkButton> 

<asp:Label id="Label1" runat="server"/> 

entonces será disponible cuando en el controlador:

protected void ENameLinkBtn_Command (object sender, CommandEventArgs e) 
{ 
    Label1.Text = "You chose: " + e.CommandName + " Item " + e.CommandArgument; 
} 

Más información sobre MSDN

Cuestiones relacionadas