Я преобразовал страницу ASP.NET DeleteUser.aspx
в пользовательский элемент управления DeleteUser.ascx
.Javascript не вызывается из пользовательского элемента управления ASP.NET
ASPX страница была простая яваскрипта функцию:
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
, я первый переехал этот яваскрипта код в содержащем файл ASPX в <head>
тега. Страница выбрала исключение. txtusercn
не входит в объем содержащего aspx-файла.
Затем я переехал яваскрипта функцию в отдельный DeleteUser.js файла JavaScript и ссылки его из DeleteUser.ascx.cs
так:
protected void Page_Load(object sender, EventArgs e)
{
Page.ClientScript.RegisterClientScriptInclude(typeof(DeleteUser),"DeleteUserScript",@"../scripts/DeleteUser.js");
}
Javascript функция не вызывается здесь, но когда я проверяю, содержащий файл ASPX-х , я вижу, что функция javascript зарегистрирована правильно.
Почему Java-функция не вызывается даже после того, как страница ссылается на яваскрипта файл DeleteUser.js
Edit:
Вызов функции, как это:
<asp:Button ID="btndeleteusercn" runat="server" Text="Delete Usercn" OnClick="btndeleteusercn_Click" OnClientClick="return deleteConfirmation();" />
Как вы вызова функции? Что ваш браузер отлаживает консоль/firebug/dev tools/etc. скажем, если какая-либо ошибка? – EdSF
Вы проверили произведенную разметку (тег скрипта)? Я бы поспорил, что есть проблема с правой папкой. Если ваша папка с скриптами находится в корне сайта, попробуйте использовать «/scripts/DeleteUser.js», кстати. вам не нужно @ для косой черты (/) –
@EdSF: Я отредактировал вопрос, как я вызываю функцию. – Animesh