views:

3654

answers:

6

I have dropdown on my page, I am changing selected value of dropdown from popup window using javascript. I have some logic in dropdown SelectedIndexChanged event, so I need to fire the SelectedIndexChanged event when dropdown selection changed from javascript.

+1  A: 

Call onchange method like that at client side :

document.getElementById('yourDropdownsClientId').onchange();

EDIT : If you set your dropdown's AutoPostBack property to true, the code above will post your page to server, than your server side event will be called.

But If you want to call your event manually, you can all it anywhere in your page's codebehind like that :

myDropDownList_SelectedIndexChanged(null, new EventArgs());
Canavar
but I want to fire server side dropdown SelectedIndexChanged event, I have my logic on server side.
Muhammad Akhtar
but doing this document.getElementById('yourDropdownsClientId').onchange(); getting javascript Error.
Muhammad Akhtar
A: 

yeah...i think what Canavar said will work but it will have to look like this

document.getElementById('<%=yourDropdown.ClientId%>').onchange();
Eric
+1  A: 
document.getElementById('<%=yourDropdown.ClientId%>').onchange();

This should work, if you getting still some error, you can try like this....

setTimeout('__doPostBack(\'yourcontrolClientSideID',\'\')', 0);

yourcontrolClientSideID is the ID of Rendered Client ID.

A: 

never worked for me..

Maverick
you should post code in seperate question
Muhammad Akhtar
+1  A: 

Here is a working example:

function fireEvent(element,event){
if(document.createEvent){
 // dispatch for firefox + others
var evt = document.createEvent(”HTMLEvents”);
evt.initEvent(event, true, true ); // event type,bubbling,cancelable
return !element.dispatchEvent(evt);
}
else{
// dispatch for IE
var evt = document.createEventObject();
return element.fireEvent(’on’+event,evt)
}
}
Olivier
A: 

actually its : document.getElementById('<%=yourDropdown.ClientId%>').change();

Justin