Like many others, I'm trying to invoke a .NET control's server-side event from JavaScript.
Specifically, I want to fire the TextChanged
event on a TextBox named txtSearch
. Therefore, I'm looking to reach the following event from client-side:
protected void txtSearch_TextChanged(object sender, EventArgs e)
Having read many answers on SO (for example here and here) I have the following JavaScript:
__doPostBack('ctl00$ctl00$Container$Main$txtSearch', 'TextChanged');
But the server-side event never fires.
I've tried numerous permutations: with the AutoPostBack true and false, with and without the event declared in the server-side instructions on the ASPX (i.e. OnTextChanged=""), with the EventValidation turned off in the page declaration, using the ClientID rather than the UniqueID in the EVENTTARGET parameter... but the event is still never fired.
A couple of other points
txtSearch
button control is also the trigger for an UpdatePanel, in case that matters.Can anyone tell me what more I need to do?
function initTxtBox(){ $('#<%=txtBox.ClientID%>').on('keyup change', function() {setTimeout('txtpostback()', 0); return false;});}
function txtpostback(){__doPostBack('" + txtCadastreNumber.UniqueID + @"','');
Sys.WebForms.PageRequestManager.getInstance().add_pageLoaded(initTxtBox);
Set auotpostback property to false for your txtbox and AutoEventWireup="true" for your control or page declaration. OnTextChanged event server-side will work too. if you don't use jquery in your project, let me know and I give you some javascript example without jquery using.