我正在開發一個asp.net應用程序,我需要調用後面的代碼確認對話框。之後,我需要獲得用戶的點擊(如果他點擊「確定」或「取消」)。調用後面的代碼確認對話框,並獲得選擇的選項
如果他點擊該對話框的確定按鈕,我必須繼續運行在那裏我電話對話之前停止的代碼。
爲了解決這個問題,我還以爲在放的ASPX式按鈕的輸入,並設置它的風格可見性:隱藏。所以,當用戶點擊確定按鈕時,程序將調用這個隱藏的按鈕,該按鈕調用將繼續停止作業的方法。
我會發布我的代碼,我希望它可以幫助。
下面的代碼在我的代碼後面,它調用確認對話框。
System.Web.UI.
ScriptManager.RegisterClientScriptBlock(this, GetType(), "__Mensagem", "if (confirm('" + CustomMessage + "')){document.getElementById(\'<%=btnSave.ClientID%>\').click();}", true);
下面的代碼是在我的aspx,它的「隱藏」按鈕。
<input style="visibility:hidden;" id="btnSave" runat="server" onclick="btnSave_Click"/>
我不知道爲什麼不工作。單擊確認對話框的確定按鈕後,我收到的錯誤如下:Erro em tempo deexecuçãodo Microsoft JScript:'document.getElementByID(...)'énulo ounãoéum objeto
我來自巴西,所以錯誤是葡萄牙語,翻譯成英文是這樣的:
「在Microsoft JScript'document.getElementByID(...)'上發生運行時錯誤爲空或者不是對象」
我給看看頁面的HTML代碼和我注意到,該按鈕是不存在的。
也許是因爲我使用的是UpdatePanel,但是當我刪除它(僅用於測試,我必須使用更新面板)時,會顯示相同的錯誤,並且此時該按鈕位於頁面的html代碼中。
當您將按鈕移動到其他控件(例如佔位符)時,您將遇到同樣的問題,因爲ClientID會變得不同。我剛剛提出了實際的解決方案,請參閱我的答案以獲取更新 – Darren
您是對的。我更新了上面的解決方案。仍在工作,現在如果將按鈕移動到另一個控件中,則會更安全。謝謝你的建議。 – Fernando
您可以使用'ClientIDMode =「Static」'(請參閱[文檔](http://msdn.microsoft.com/zh-cn/library/system.web.ui.control.clientidmode.aspx))。 – nrodic