我正在解決一個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
函數。
希望它有幫助。