Общепринятым условием для этого является наличие выходного оператора friend
на базовом уровне и вызов его частной виртуальной функции:
class Base
{
public:
/// don't forget this
virtual ~Base();
/// std stream interface
friend std::ostream& operator<<( std::ostream& out, const Base& b )
{
b.Print( out );
return out;
}
private:
/// derivation interface
virtual void Print( std::ostream& ) const =0;
};
document.getElementById('<%= yourDropdown.ClientID %>').onchange();
Это должно сработать, если вы все еще получаете ошибку, вы можете попробовать следующее:
setTimeout('__doPostBack(\'yourcontrolClientSideID\',\'\')', 0);
yourcontrolClientSideID
- это идентификатор обработанного идентификатора клиента.
Вызов такого метода onchange на стороне клиента:
document.getElementById('yourDropdownsClientId').onchange();
РЕДАКТИРОВАТЬ: Если вы установите для свойства AutoPostBack в раскрывающемся списке значение true, приведенный выше код отправит вашу страницу на сервер, а не на ваш сервер будет называться побочное мероприятие.
Но если вы хотите вызвать свое событие вручную, вы можете все это в любом месте в коде вашей страницы, например:
myDropDownList_SelectedIndexChanged(null, new EventArgs());
ага ... Я думаю, то, что сказал Канавар, сработает, но это должно выглядеть так
document.getElementById('<%=yourDropdown.ClientId%>').onchange();
Вот рабочий пример:
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)
}
}