在客户端获取服务器端javascript

时间:2009-11-10 09:35:37

标签: asp.net javascript

我使用asp.net 2.0创建了自定义控件。该控件包含一个文本框txtDate。我还创建了一个包含函数maskDate()的javascript文件DateMask.js。我使用 -

将maskDate()附加到文本框中

txtDate.Attributes.Add( “onkeypress事件”, “maskDate()”);

我还使用ClientScript.RegisterStartupScript注册了脚本。

当我执行包含我的自定义控件的aspx页面时,它会生成脚本错误,显示maskDate()未定义。

有人能告诉我究竟是什么问题吗?

感谢您的合作。

2 个答案:

答案 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>";

这样做的好处是,您不需要使用一些棘手的相对路径来引用脚本文件,具体取决于您的用户控件的使用位置。