为什么ddl' onchange'事件不出现在intellisense?

时间:2016-04-22 09:22:31

标签: html visual-studio-2010 webforms intellisense

我正在解决ddl的问题,试图在项目更改时弹出一个消息框。你可以在这里阅读>>> How to Popup Alert() from asp:DropDownList OnSelectedIndexChanged?

工作答案显示我使用onchange事件但是我在VS2010中工作此事件未出现在intellisense下拉列表中。但是,无论如何我输入它都可以正常工作。

1 个答案:

答案 0 :(得分:0)

为此,你需要了解它是如何工作的....当你改变输入元素的值时,onchange事件会在浏览器上被触发,所以浏览器会寻找一种方法来处理它。因此,当您为该元素指定的onchange事件时,它将被调用。

现在,ASP.NET OnSelectedIndexChanged使用相同的功能(逻辑上说)将页面POST到服务器。从那里,ASP.NET运行时触发您在代码隐藏文件中编写的函数并返回结果。现在,如果您确实不需要任何只能在服务器上进行的操作,则不需要使用服务器功能,而是可以在javascript中执行此操作。

另一方面,如果你想在服务器上发生某些事情:比如某些数据库获取,你应该使用OnSelectedIndexChanged事件。

如果你使用OnSelectedIndexChanged事件,你仍然可以从那里调用一些javascript函数。

Page.ClientScript.RegisterClientScriptBlock(typeof(string),"myScript","alert('HI')",true);

要回答关于intellisense的问题,onchangeinput类型的事件,在aspx页面中,我猜您使用的是<asp:..>个标签,它们没有相同的事件 - 因此视觉工作室不会在智能感知中显示它。但是当你把它分配给HTML标记时,它会被浏览器正确解释。

PROS和CONS

onchange适用于您的浏览器,因此它比服务器端代码快得多。另一方面,一旦浏览器具有限制弹出窗口的能力,我们就遇到了问题。因此,如果您想要显示一些非常重要的消息,最好使用服务器端事件和RegisterClientScriptBlock函数。

希望它有所帮助。