想要在Javascript中触发Dropdown SelectedIndexChanged事件

时间:2009-06-17 13:55:27

标签: asp.net javascript html javascript-events

我的页面上有下拉列表,我正在使用javascript从弹出窗口更改下拉列表的选定值。我在下拉列表中有一些逻辑SelectedIndexChanged事件,因此我需要在从javascript更改下拉列表选项时触发SelectedIndexChanged事件。

4 个答案:

答案 0 :(得分:9)

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

这应该有效,如果你仍然有一些错误,你可以尝试这样:

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

yourcontrolClientSideID是呈现的客户端ID的ID。

答案 1 :(得分:2)

这是一个有效的例子:

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)
}
}

答案 2 :(得分:1)

在客户端调用onchange方法:

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

编辑:如果您将下拉列表的AutoPostBack属性设置为true,则上面的代码会将您的页面发布到服务器,而不会调用您的服务器端事件。

但如果您想手动调用您的活动,您可以在页面的代码隐藏中的任何位置使用它:

myDropDownList_SelectedIndexChanged(null, new EventArgs());

答案 3 :(得分:0)

是的......我认为Canavar说会起作用,但它必须看起来像这样

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