5

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

4

4 回答 4

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

这应该可以,如果您仍然遇到一些错误,您可以尝试这样:

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

yourcontrolClientSideID是 Rendered Client ID 的 ID。

于 2009-06-18T11:52:32.727 回答
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)
}
}
于 2009-12-21T08:01:20.263 回答
1

在客户端调用 onchange 方法:

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

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

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

myDropDownList_SelectedIndexChanged(null, new EventArgs());
于 2009-06-17T14:00:40.707 回答
0

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

document.getElementById('<%=yourDropdown.ClientId%>').onchange();
于 2009-06-17T14:04:25.113 回答