簡體   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