Javascript不能从ASP调用.NET用户控制
Javascript is not being called from ASP.NET User Control
我转换了一个ASP。. NET页面DeleteUser.aspx
到用户控件DeleteUser.ascx
。
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文件DeleteUser.js
之后javascript函数没有被调用
编辑:
这样调用函数:
<asp:Button ID="btndeleteusercn" runat="server" Text="Delete Usercn" OnClick="btndeleteusercn_Click" OnClientClick="return deleteConfirmation();" />
我猜,"<%= txtusercn。ClientID %>"必须创建JavaScript错误,因为服务器控件引用应该在相关控件存在的页面上。您应该通过参数将ControlID传递给函数,然后它应该工作。
function deleteConfirmation(ctrlID) {
var xusername = document.getElementById(ctrlID).value;
if (xusername != null && xusername != "") {
var userTextBoxId = ctrlID;
var uname = document.getElementById(userTextBoxId).value;
return confirm('Are you sure you want to delete ''' + uname + '''?');
}
else {
alert('Please enter Usercn');
return false
}}
并通过从那里传递ID来调用from的方法。例如
deleteconconfirm ('ID of Control')
请尝试更新后的代码。
function deleteConfirmation() {
var xusername = document.getElementById('<%= txtusercn.ClientID %>').value;
if (xusername != null && xusername != "") {
return confirm('Are you sure you want to delete ''' + xusername + '''?');
}
else {
alert('Please enter Usercn');
return false
}
return true;
}
文本框的客户端ID被渲染为DeleteUser1_txtusercn
,所以我像这样改变了javascript,它工作了:
function deleteConfirmation() {
var uname = document.getElementById('DeleteUser1_txtusercn').value;
if (uname != null && uname != "") {
return confirm('Are you sure you want to delete ''' + uname + '''?');
}
else {
alert('Please enter UserCN');
return false;
}
}
相关文章:
- 当用户点击动态创建的链接时,如何调用JS方法.JQuery,ASP.NET MVC
- jQuery根据用户选择启用/禁用asp.net控件
- 在设置用户后,从 JavaScript JSON 请求中获取 Web 服务 (asmx) ASP.NET Windows
- 最佳实践:在网页对用户可见后调用.Net函数
- 使用JavaScript将日期/时间添加到我的asp.net用户控件中
- 使用 AJAX 和 __doPostBack 在数据网格中 Asp.net 用户控件
- 从不同的 .Net 用户控件调用相同的 javascript 函数
- 同一 ASP.NET 用户的多个实例控制 Javascript 名称冲突
- 如何在asp.net用户控件中动态附加脚本标记
- JavaScript方法在ASP.NET用户控件中不起作用
- ASP.. NET用户控件弹出
- Asp.net用户控件和更新面板打破javascript
- Javascript不能从ASP调用.NET用户控制
- 如何在ASP中存储css和js.NET用户控件
- 在ASP中分配外部JavaScript变量.使用Ajax加载的.NET用户控件
- ASP.net用户控件;t调用javascript函数
- 如何为ASP.NET用户控件创建客户端API
- asp.net 用户控件中的 Javascript 变量 - 覆盖同一插入的用户控件中的变量
- 在.net用户控件中传播客户端事件
- 在asp.net用户控件中使用jquery库