使用asp.net用户控件时我在哪里放JavaScript?

时间:2009-11-09 20:35:06

标签: asp.net javascript jquery

我有一个带有“更多信息”链接的用户控件。单击该链接时,我希望显示一个div,为用户提供更多信息。

我在哪里放JavaScript?当放置在我的用户控件的顶部时,它似乎不起作用。当您使用用户控件时,如何处理JavaScript和jQuery?我的母版页中包含了jQuery库。我的常规asp.net页面有JavaScript和那些工作。

编辑:在用户控件中进行客户端编码的方法似乎是通过服务器端输出脚本,类似于asp.net服务器控件的工作方式。令人失望的是,jQuery非常棒,但所有示例都严格嵌入到html / aspx页面中。是否有一个资源用于jQuery与asp.net,我还没有找到?

6 个答案:

答案 0 :(得分:5)

使用ClientScriptManager.RegisterStartUpScript在服务器端的页面末尾设置脚本。或者使用JQuery的ready event确保加载了dom,然后将客户端事件绑定到链接。

RegisterStartupScript,在页面末尾注册脚本,因此在加载页面的所有元素之后加载脚本。

另一个选择是使用JQuery的ready事件,它可以帮助您等待所有加载的DOM元素。您可以在内联或服务器端实现就绪功能。

这里的关键是等待DOM元素加载。

答案 1 :(得分:1)

有很多方法可以做到这一点。您可以在任何地方添加javascript并为该点击设置一个事件。

如果javascript只是该用户控件的一部分,并且您只希望它包含在用户控件中,则可以将其放在Web资源中并从那里访问它。

http://bchavez.bitarmory.com/archive/2008/07/28/understanding-scriptresource-and-webresource-in-asp.net.aspx

您也应该能够在用户控件中添加标签。

答案 2 :(得分:1)

我更喜欢在.ascx文件中放置与特定控件关联的.js文件的链接

<script src="Js/myUserControl.js" type="text/javascript"></script>

编辑:作为注释,您可以将上面的行放在.ascx文件的底部,以便将引用与用户控件一起保存 - 而不是放入.aspx文件。

答案 3 :(得分:0)

你可以动态地将它添加到后端逻辑中,但只要你植入用户控件的主页有对所述js文件的引用,你应该很好。

答案 4 :(得分:0)

如果您正在使用带有代码前端的用户控件(ascx),只需将您的javascript(jquery?)放在那里,如果没有,那么您可以在渲染控件(Render事件)时手动向html发出javascript或通过而是ClientScript.RegisterStartupScript

答案 5 :(得分:0)

如果您不想将JavaScript硬编码为启动事件,而是包含JavaScript文件:

首先使用脚本文件的路径调用ScriptManager.RegisterClientScriptInclude,然后使用脚本文件中的启动函数调用ScriptManager.RegisterStartupScript

protected void Page_Load(object sender, EventArgs e)
{
   ScriptManager.RegisterClientScriptInclude(
      this, GetType(), "formatterScript", ResolveUrl("~/js/formatter.js"));
   ScriptManager.RegisterStartupScript(
      this, GetType(), "formatTableFunction", "formatTable()", true);
}