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