[英]Dynamic drop down list's selected Index Changed event always return the first value
[英]Drop Down List not triggering Index changed event
当我使用此下拉列表时,它会触发索引更改背后的代码,
$('#messagebox').show();
但在使用时不会触发事件,
$.blockUI({message: $('#messagebox'), css: { width: '600px' } });
这是我在div下拉菜单中的标记,看起来像一个消息框
<div id="messagebox" style="display: none; cursor: default">
<asp:DropDownList ID="ddl" runat="server" EnableViewState="true" AutoPostBack="true" OnSelectedIndexChanged="ddl_SelectedIndexChanged"/>
</div>
我该如何解决这个问题?
这很可能是因为blockUI会将内容附加到正文而不是form标签。 如果它们不在form标记之外,Asp.Net控件将不会回发事件,因此在使用javascript将元素附加到正文时,您经常会遇到该事件。 您很可能必须对BlockUI进行一些修改。
有关更多信息,请参见以下答案: https : //stackoverflow.com/a/7929700/1346464 。
编辑:
总结链接的答案(基于撰写本文时的最新版本的blockUI v2.59.0-2013.04.05):
在第319行(搜索var layers
)上,将$('body')
替换$('body')
$('form')
。
在第336行上(搜索$('html,body').css('height','100%');
),将$('html,body')
替换$('html,body,form')
。
编辑2:
修复了解锁:
在第448行(搜索els = $('body').children().filter('.blockUI').add('body > .blockUI');
)将两个body
实例替换为form
。
我不熟悉jQuery blockUI,但是使用jQuery Dialog时,它会在显示表单时从表单中删除所有表单字段。 因此,将表单发回时,您无权访问它们。
使用jQuery Dialog,您必须添加一些代码才能将字段添加回表单中。 我建议搜索以查看blockUI是否存在相同的问题。
autopostbackproperty=true like below
<asp:DropDownList ID="ddlName" runat="server" AutoPostBack ="true"
onselectedindexchanged="ddlName_SelectedIndexChanged" >
</asp:DropDownList>
protected void ddlName_SelectedIndexChanged(object sender, EventArgs e)
{
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.