我有一个带有“更多信息”链接的用户控件。单击该链接时,我希望显示一个div,为用户提供更多信息。
我在哪里放JavaScript?当放置在我的用户控件的顶部时,它似乎不起作用。当您使用用户控件时,如何处理JavaScript和jQuery?我的母版页中包含了jQuery库。我的常规asp.net页面有JavaScript和那些工作。
编辑:在用户控件中进行客户端编码的方法似乎是通过服务器端输出脚本,类似于asp.net服务器控件的工作方式。令人失望的是,jQuery非常棒,但所有示例都严格嵌入到html / aspx页面中。是否有一个资源用于jQuery与asp.net,我还没有找到?答案 0 :(得分:5)
使用ClientScriptManager.RegisterStartUpScript在服务器端的页面末尾设置脚本。或者使用JQuery的ready event确保加载了dom,然后将客户端事件绑定到链接。
RegisterStartupScript,在页面末尾注册脚本,因此在加载页面的所有元素之后加载脚本。
另一个选择是使用JQuery的ready事件,它可以帮助您等待所有加载的DOM元素。您可以在内联或服务器端实现就绪功能。
这里的关键是等待DOM元素加载。
答案 1 :(得分:1)
有很多方法可以做到这一点。您可以在任何地方添加javascript并为该点击设置一个事件。
如果javascript只是该用户控件的一部分,并且您只希望它包含在用户控件中,则可以将其放在Web资源中并从那里访问它。
您也应该能够在用户控件中添加标签。
答案 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);
}