2009-06-17 61 views

回答

9
document.getElementById('<%= yourDropdown.ClientID %>').onchange(); 

这应该工作,如果你仍然得到了一些错误,你可以尝试这样的:

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

yourcontrolClientSideID是渲染客户端ID的ID。

1

呼叫平变化这样的方法在客户端:

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

编辑:如果您在下拉的AutoPostBack属性设置为true,上面的代码将发布自己的网页服务器,比你的服务器端事件将叫做。

但如果你想手动调用您的活动,你都可以在你的页面的代码隐藏这样的任何地方:

myDropDownList_SelectedIndexChanged(null, new EventArgs()); 
+0

但我想火的服务器端下拉SelectedIndexChanged事件,我有我的服务器端逻辑。 – 2009-06-17 14:19:16

+0

但是这样做document.getElementById('yourDropdownsClientId')。onchange();得到JavaScript错误。 – 2009-06-18 07:41:48

0

啊...我觉得Canavar说会工作,但它将不得不看这样

document.getElementById('<%=yourDropdown.ClientId%>').onchange(); 
1

这里是一个工作示例:

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) 
} 
} 
相关问题