繁体   English   中英

下拉列表未触发索引更改事件

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM