2014-09-03 282 views
0

我有一個下拉列表如下圖所示:下拉列表onchange事件不觸發

<asp:DropDownList ID="ddlExtraHoursStatus" runat="server" CssClass="dropdown" 
               Width="130px"> 
              </asp:DropDownList> 

在我的代碼是什麼做的是我設置其屬性上的Page_Load調用它的「的onchange」事件JS功能。當我運行頁面並更改下拉選擇時,它完美地工作。

的問題還是我的問題是爲什麼onchange事件不解僱(它調用JS功能),當我在代碼中更改下拉的SelectedValue屬性後面?????

我在這裏卡住了,怎麼把我的進一步處理取決於此。請幫助

+0

不能火從服務器客戶端的事件。 – 2014-09-03 09:29:41

+0

http://stackoverflow.com/questions/14811718/how-to-call-a-javascript-function-using-asp-net-dropdown-list – AmanVirdi 2014-09-03 09:38:26

回答

1

下拉值在服務器端更改後的頁面加載新鮮的瀏覽器和JavaScript(如果你不使用更新面板)。所以在客戶端的頁面加載時,您需要調用onchange事件中調用的函數。如果你想調用的函數只有在下拉列表中值已更改,你可以做到這一點,如下(如果你正在使用jQuery)

jQuery(document).ready(function(){ 
    DropdwonOnChangeFunction(); 
}); 

,你需要保持它具有先前選定值隱藏標誌下降。您可以在代碼後面的頁面加載開始時設置此字段。然後使用該字段中的值可以決定是否要調用該函數。如下。

jQuery(document).ready(function(){ 
    if($("#hdnDdlOldValue").val()!=$("#ddlExtraHoursStatus").val()) 
    { 
     DropdwonOnChangeFunction(); 
     } 
    }); 

這裏我使用了靜態ID。您可以使用客戶端ID。

+0

感謝您指出我在正確的方向的可能的複製。實際上,我在綁定下拉菜單後,從代碼後面調用JS函數。萬分感謝 !!!! – 2014-09-03 10:39:40