dropdownlist onchange事件未触发

时间:2014-09-03 09:27:41

标签: c# javascript asp.net

我有一个如下所示的下拉列表:

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

在我的代码中,我做的是在Page_load上设置它的属性,以便在'onchange'事件上调用JS函数。当我运行页面并更改下拉选项时,它可以正常工作。

我遇到的问题或问题是当我在代码后面的代码中更改下拉列表的selectedvalue属性时,为什么没有触发onchange事件(调用JS函数)?

我被困在这里,因为我的进一步过程取决于此。请帮忙

1 个答案:

答案 0 :(得分:1)

在服务器端更改下拉列表的值后,页面会为浏览器和javascript加载新内容(如果您没有使用更新面板)。因此,在客户端页面的加载时,您需要调用在onchange事件中调用的函数。你可以这样做(如果你使用jquery)

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

如果只想在下拉列表中的值发生更改时调用该函数,则需要维护一个隐藏标志,该标志具有下拉列表的先前选定值。您可以在代码隐藏的页面加载开始时设置此字段。然后使用此字段中的值,您可以决定是否要调用该函数。如下所示。

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

这里我使用了静态ID。您可以使用客户端ID。