我將ASP.NET頁面DeleteUser.aspx
轉換爲用戶控件DeleteUser.ascx
。Javascript未被ASP.NET用戶控件調用
ASPX頁碰到這樣的簡單的JavaScript功能:
function deleteConfirmation() {
var xusername = document.getElementById('<%= txtusercn.ClientID %>').value;
if (xusername != null && xusername != "") {
var userTextBoxId = '<%= txtusercn.ClientID %>';
var uname = document.getElementById(userTextBoxId).value;
return confirm('Are you sure you want to delete \'' + uname + '\'?');
}
else {
alert('Please enter Usercn');
return false
}
}
現在,因爲這個被轉換成一個用戶控制,DeleteUser.ascx
,我首先移動此JavaScript代碼插入在<head>
標籤含aspx文件。該頁面引發異常txtusercn
不在包含aspx文件的範圍內。
然後我感動的JavaScript功能到一個單獨的JavaScript文件DeleteUser.js和DeleteUser.ascx.cs
引用這樣的:
protected void Page_Load(object sender, EventArgs e)
{
Page.ClientScript.RegisterClientScriptInclude(typeof(DeleteUser),"DeleteUserScript",@"../scripts/DeleteUser.js");
}
JavaScript函數沒有被這裏叫,但是當我檢查包含aspx文件的頁面源代碼,我可以看到javascript函數已正確註冊。
爲什麼javascript函數沒有被調用的頁面是指JavaScript文件DeleteUser.js
編輯即使經過:
調用該函數是這樣的:
<asp:Button ID="btndeleteusercn" runat="server" Text="Delete Usercn" OnClick="btndeleteusercn_Click" OnClientClick="return deleteConfirmation();" />
你是如何調用該函數?你的瀏覽器調試控制檯/ firebug/dev tools/etc是什麼?說,如果有任何錯誤? – EdSF 2013-05-14 10:17:12
你檢查過產生的標記(腳本標記)嗎?我敢打賭,正確的文件夾有問題。如果您的腳本文件夾位於站點根目錄,請嘗試使用「/scripts/DeleteUser.js」,順便說一句。你不需要@斜槓(/) – 2013-05-14 10:22:46
@EdSF:我編輯的問題與我如何調用該函數。 – Animesh 2013-05-14 10:29:10