【问题标题】:dropdown list event is not firing when javascript is used使用 javascript 时下拉列表事件未触发
【发布时间】:2012-10-24 10:59:29
【问题描述】:

我在触发下拉列表事件时遇到问题。

我有以下下拉列表:

asp:dropdownlist id="ddlhello" Runat="server" AutoPostBack="True"  onchange="javascript:return ChangeHeader();"

我还在后面的代码中添加了一个事件,即 selectedindex 更改事件。

现在当我执行页面时出现问题:它执行 javascript 但服务器端代码没有触发。如果我删除这一行 onchange="javascript:return ChangeHeader();" 然后服务器端代码触发。

当我检查源页面时,它显示了两个关联的 onchange 事件: 一个用于 javascript,另一个用于服务器端。

我认为它正在选择客户端代码而忽略了服务器端。

我不太确定,所以我想知道行为原因。

这有什么出路。

我希望执行服务器和客户端代码。 我已经搜索了解决方案,但我没有找到任何正确的原因。

请帮帮我。

【问题讨论】:

    标签: javascript asp.net


    【解决方案1】:

    你不能用下拉菜单绑定服务器端事件,用onselectedindexchanged绑定它

    onselectedindexchanged="DropDownList1_SelectedIndexChanged"

    <asp:dropdownlist id="ddlhello" Runat="server" AutoPostBack="True"   onselectedindexchanged="DropDownList1_SelectedIndexChanged" onchange="javascript:return ChangeHeader();" </asp:dropdownlist>
    

    从客户端返回 false 会停止回发。

    function ChangeHeader()
    {
     //return false; // will stop the postback
      return true; //will cause postback
    }
    

    【讨论】:

    • 我返回了 true 仍然没有触发事件。
    【解决方案2】:

    使用如下代替 onchange="return ChangeHeader();" onchange="ChangeHeader();"

    希望对你有帮助。

    【讨论】:

    • 无论出于何种原因投反对票的人,请提供原因。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-02-20
    • 2010-12-29
    • 2011-12-05
    • 2019-03-04
    • 1970-01-01
    • 1970-01-01
    • 2012-08-19
    相关资源
    最近更新 更多