我正在解决ddl的问题,试图在项目更改时弹出一个消息框。你可以在这里阅读>>> How to Popup Alert() from asp:DropDownList OnSelectedIndexChanged?
工作答案显示我使用onchange
事件但是我在VS2010中工作此事件未出现在intellisense下拉列表中。但是,无论如何我输入它都可以正常工作。
答案 0 :(得分:0)
为此,你需要了解它是如何工作的....当你改变输入元素的值时,onchange
事件会在浏览器上被触发,所以浏览器会寻找一种方法来处理它。因此,当您为该元素指定的onchange事件时,它将被调用。
现在,ASP.NET OnSelectedIndexChanged
使用相同的功能(逻辑上说)将页面POST到服务器。从那里,ASP.NET运行时触发您在代码隐藏文件中编写的函数并返回结果。现在,如果您确实不需要任何只能在服务器上进行的操作,则不需要使用服务器功能,而是可以在javascript中执行此操作。
另一方面,如果你想在服务器上发生某些事情:比如某些数据库获取,你应该使用OnSelectedIndexChanged
事件。
如果你使用OnSelectedIndexChanged
事件,你仍然可以从那里调用一些javascript函数。
Page.ClientScript.RegisterClientScriptBlock(typeof(string),"myScript","alert('HI')",true);
要回答关于intellisense的问题,onchange
是input
类型的事件,在aspx页面中,我猜您使用的是<asp:..>
个标签,它们没有相同的事件 - 因此视觉工作室不会在智能感知中显示它。但是当你把它分配给HTML标记时,它会被浏览器正确解释。
PROS和CONS
onchange
适用于您的浏览器,因此它比服务器端代码快得多。另一方面,一旦浏览器具有限制弹出窗口的能力,我们就遇到了问题。因此,如果您想要显示一些非常重要的消息,最好使用服务器端事件和RegisterClientScriptBlock
函数。
希望它有所帮助。