0

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

我有以下下拉列表:

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

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

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

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

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

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

什么是出路。

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

请帮我。

4

2 回答 2

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
}
于 2012-10-24T11:01:20.203 回答
0

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

我希望这可以帮助你。

于 2012-10-24T11:06:40.420 回答