【问题标题】:dropdownlist onchange event not firing下拉列表 onchange 事件未触发
【发布时间】:2014-09-03 09:27:41
【问题描述】:

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

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

在我的代码中,我将其属性设置为 Page_load 以在其“onchange”事件上调用 JS 函数。当我运行页面并更改下拉选择时,它可以完美运行。

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

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

【问题讨论】:

标签: c# javascript asp.net


【解决方案1】:

在服务器端更改下拉列表的值后,页面将加载为浏览器和 javascript 的新页面(如果您不使用更新面板)。因此,在客户端加载页面时,您需要调用在 onchange 事件中调用的函数。您可以按以下方式执行此操作(如果您使用的是 jquery)

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

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

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

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

【讨论】:

  • 感谢您为我指明正确的方向。实际上,我只是在绑定下拉列表后从 Code behind 中调用了 JS 函数。非常感谢!!!!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-02-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-04
  • 2021-01-23
  • 1970-01-01
相关资源
最近更新 更多