我的网页中有一个DropDownList对象。当我点击它并选择一个不同的值时,什么也没有发生,即使我有一个连接到SelectedIndexChanged
事件的函数。
首先,实际对象的HTML代码:
<asp:DropDownList ID="logList" runat="server"
onselectedindexchanged="itemSelected">
</asp:DropDownList>
字符串
这就是那个函数itemSelected
:
protected void itemSelected(object sender, EventArgs e)
{
Response.Write("Getting clicked; " + sender.GetType().ToString());
FileInfo selectedfile;
Response.Write("<script>alert('Hello')</script>");
foreach (FileInfo file in logs)
{
if (file.Name == logList.Items[logList.SelectedIndex].Text)
{
Response.Write("<script>alert('Hello')</script>");
}
}
}
型
没有任何响应出现,并且JavaScript的该部分永远不会运行。我已经在最新的3.6版Firefox和Internet Explorer 8上试过了。这是从Windows Server 2003 R2计算机上提供的,运行ASP.NET和.NET Framework版本4。
8条答案
按热度按时间uoifb46i1#
将DropDownList
AutoPostBack
属性设置为true。例如:
字符串
3yhwsihp2#
尝试在DropDownList上设置
AutoPostBack="True"
。ru9i0ody3#
我知道它有点老的职位,但我仍然想添加一些上面的答案。
在中,可能会出现下拉列表中多个项目的“value”重复/相同的情况。因此,请确保列表项中没有重复的值来触发此“onselectedindexchanged”事件
1wnzp6jl4#
在下拉列表中添加属性
ViewStateMode="Enabled"
和EnableViewState="true"
以及AutoPostBack="true"
jecbmhm35#
同时确保页面有效。您可以在浏览器开发者工具(F12)中检查这一点。
在Console选项卡中,选择正确的Target/Frame并检查[Page_IsValid]属性
如果页面无效,表单将不会提交,因此不会触发事件。
t5zmwmid6#
对我来说答案是aspx页面属性,我添加了Async=“true”到页面属性,这解决了我的问题。
字符串
这是我的更新面板的结构
型
bis0qfac7#
您可以直接在下拉列表控件的SelectedIndexChanged事件中写入它,而不是您已经写入的内容,例如。
字符串
rqqzpn5f8#
在我的例子中,这个问题与组合框的值字段中的文本有关,如果文本包含像“\r\n”这样的特殊字符,则不会触发SelectedIndexChanged事件,因为一旦页面被编译,创建的JavaScript将失败。