【问题标题】:How to call external javascript method on aspx page in the user control如何在用户控件中的 aspx 页面上调用外部 javascript 方法
【发布时间】:2015-05-14 10:32:50
【问题描述】:

我有一个包含许多方法的外部 Javascript 文件。我有一个 aspx 页面,其中包含许多控件,如 asp 文本框、按钮等。在这个 aspx 页面中,我使用的是用户控件。此用户控件有一个文本框。 我的外部 java 脚本函数在普通控件上被调用,比如作为 asp 控件的文本框。但是当我试图在 aspx 页面上调用用户控件时,同样的 javascript 函数没有被调用。 请告诉我为什么它没有被调用,我有什么遗漏的吗? 下面是调用控件的示例 JS。这里的 JS 函数在 Asp Textbox 上被调用,而不是在用户控件上。

  <div>
        <asp:TextBox ID="txtName" runat="server" onblur="MyJsFunc();"></asp:TextBox>
        <uc1:usertextbox id="txtUserTxt" runat="server" onblur="MyJsFunc();" />
    </div>

【问题讨论】:

  • 用户控件有什么作用?你确定它会触发 onblur 事件吗?
  • 检查浏览器控制台是否有 javascript 错误
  • yes onblur 在第一个上工作正常,但在第二个上没有任何反应。
  • 有什么具体的方法可以在aspx上调用JS函数进行用户控制吗?
  • 您是否将 onblur 绑定到用户控件中的文本框?根据我对 aspx 的记忆,onblur 将作为属性传递给您的用户控件,然后您必须将该属性绑定到用户控件中的文本框。你能显示用户控件的代码隐藏和aspx吗

标签: javascript c# asp.net


【解决方案1】:

这没有经过测试,而且自从我做 aspx 以来已经有一段时间了,所以它可能不是 100% 准确的。但是假设你有这样的用户控制代码:

public partial class UserTextBox : UserControl
{
    public string OnBlur {get;set;} // add the property for onblur

    protected void Page_Load(object sender, EventArgs e) // or can be on init
    {
        txtUserName.OnBlur = OnBlur;
    }
}

所以在上面,txtUserName 是您的普通文本框控件的 id(您已在用户控件的 aspx 上创建),您只是将通过用户控件传递的 onblur 属性绑定到 onblur 属性普通文本框

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-01-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-30
    • 1970-01-01
    相关资源
    最近更新 更多