Come posso fare clic o caricare l'evento click()
di un pulsante in codebehind?
Ho già provatoChiamata evento click di un pulsante serveride
btn.Click();
ma questo dà un errore. Sto usando ASP.NET
Come posso fare clic o caricare l'evento click()
di un pulsante in codebehind?
Ho già provatoChiamata evento click di un pulsante serveride
btn.Click();
ma questo dà un errore. Sto usando ASP.NET
Vuoi chiamare tutti i gestori di eventi collegati al pulsante, o solo uno?
Se solo uno, chiamare il gestore:
btn.btn_Click(btn, new EventArgs());
Se tutti loro, attivare l'evento:
var tmpEvent = btn.Click;
if (tmpEvent != null)
tmpEvent(btn, new EventArgs());
btn.Click restituisce un errore: l'evento può apparire solo sul lato sinistro ... – code
Button1.Button1_Click (Button1, new EventArgs()); dose non funziona puoi espandere il tuo codice ?? –
Modifica provare questo:
protected void Page_Init(object sender, EventArgs e)
{
Button1.Click += new EventHandler(Button1_Click);
}
void Button1_Click(object sender, EventArgs e)
{
}
nelle cs pagina
sì ho già fatto questo ... ma ho bisogno di chiamare pulsante1_Click nel codice dietro ... senza fare clic sul pulsante! – code
Se non è necessario il contesto fornito dal mittente e dagli eventargs quindi puoi semplicemente rifattorizzare per creare un metodo (es. DoStuff()) e fare in modo che il gestore di eventi lo chiami. Quindi, quando si desidera chiamare la stessa funzionalità da altrove, è sufficiente chiamare DoStuff(). Dipende davvero se vuoi effettivamente simulare un clic o meno. Se vuoi simulare un clic, allora altri metodi sono migliori.
Suppongo che si abbia un pulsante denominato Button1 e che sia stato fatto doppio clic per creare un gestore eventi.
per simulare il pulsante di scatto nel codice, è sufficiente chiamata il gestore di eventi:
Button1_Click (object sender, EventArgs).
ad es. nella tua pagina Carica evento
protected void Page_Load(object sender, EventArgs e)
{
//This simulates the button click from within your code.
Button1_Click(Button1, EventArgs.Empty);
}
protected void Button1_Click(object sender, EventArgs e)
{
//Do some stuff in the button click event handler.
}
Vale la pena sottolineare in questa risposta che gli argomenti dell'evento stanno utilizzando EventArgs.Empty che si oppone a "newing up up". Questo ti farà risparmiare alcune risorse ma è anche un motivo sottile per cui questa risposta è migliore :) –
Qualunque codice sia in esecuzione in 'Button1_Click (..)' dovrebbe essere nel suo stesso metodo, 'Foo()'. E poi sia 'Page_Load (..)' che 'Button1_Click (..)' dovrebbero chiamare 'Foo();'. Quando sei tentato di invocare gestori di eventi, pensa direttamente se è effettivamente ciò che intendi o se vuoi semplicemente eseguire la stessa azione finale. – JMD
Basta chiamare i pulsanti fare clic su funzione. http://forums.asp.net/t/1178012.aspx
Invece di provare a chiamare l'evento, basta chiamare la funzione utilizzata dall'evento.
Example: btn.Click() calls btn_Click(object sender, EventArgs e)
so you should call the function btn_Click(btn,new EventArgs());
protected void Page_Load(object sender, EventArgs e)
{
functionName();
}
protected void btn_Click(object sender, EventArgs e)
{
functionName();
}
public void functionName()
{
//function code goes here, and call this function where ever you want
}
provare questo .......
YourButton.RaiseEvent(new RoutedEventArgs(Button.ClickEvent));
questo funziona per me.
penso che sia per WPF –
E 'passato tanto tempo fa, ma qui è la mia soluzione
È possibile utilizzare:
btn.PerformClick();
Prova questa:
YourButton_Click(sender, e);
Quale tecnologia stai usando? WinForms? WPF? ASP.NET? –
Potresti essere più specifico sull'errore? – Hinek