我使用asp.net 2.0创建了自定义控件。该控件包含一个文本框txtDate。我还创建了一个包含函数maskDate()的javascript文件DateMask.js。我使用 -
将maskDate()附加到文本框中txtDate.Attributes.Add( “onkeypress事件”, “maskDate()”);
我还使用ClientScript.RegisterStartupScript注册了脚本。
当我执行包含我的自定义控件的aspx页面时,它会生成脚本错误,显示maskDate()未定义。
有人能告诉我究竟是什么问题吗?
感谢您的合作。
答案 0 :(得分:1)
确保您没有忘记<form runat="server" ID="Form1"></form>
标记末尾的<head>
!
正如您可以在“{Page 3ClientScript.RegisterStartupScript和Page.ClientScript.RegisterClientScriptBlock之间的差异”中的Using JavaScript Along with ASP.NET 2.0中读到的那样,它们依赖于表单标记的位置。
我们已经展示了两种不同的方法 用于放置JavaScript函数 ASP.NET页面 - 所以是什么 区别?主要区别在于 那就是RegisterStartupScript方法 将JavaScript放在底部 之前的ASP.NET页面 关闭元素。该 RegisterClientScriptBlock方法 直接放置JavaScript 中的开放元素 页。那么这有什么不同呢 使?它可以做很多 正如我们将要看到的那样。
答案 1 :(得分:1)
一种方法是在文本框上方放置一个文字控件,然后在后面的代码中将脚本分配给它:
literal1.Text = "<script>function maskDate() {...}</script>";
这样做的好处是,您不需要使用一些棘手的相对路径来引用脚本文件,具体取决于您的用户控件的使用位置。