jQuery + ASP.NET WebForms + MasterPage

时间:2011-04-01 10:06:33

标签: jquery asp.net jquery-ui webforms

早上好, 我在使用MasterPage和jQuery时遇到问题。我使用自定义主题的jQuery UI,我想设置所有按钮的设计来设计jQuery UI按钮。 在MasterPage中有一个:

<script src="js/jquery-1.4.4.min.js" type="text/javascript"></script>
<script src="js/jquery-ui-1.8.10.custom.min.js" type="text/javascript"></script>
<script src="js/i18n/jquery-ui-i18n.js" type="text/javascript"></script>
<script type="text/javascript">
    $(document).ready(function() {

        // destroy all dialogs
        $('#dialog:ui-dialog').dialog('destroy');

        // set buttons
        $('input:submit, button').button();

    });
</script>

在默认的aspx页面上,我有一个asp:Button,它看起来像jQuery UI按钮。但是在目录中的其他aspx页面我有一些asp:TextBox和一个asp:Button我有错误: Microsoft JScript - 运行程序中的错误:Property $具有Null值或未定义。属性不是Function的对象。 并且按钮看不到像jQuery UI按钮。 怎么了? 谢谢你,祝你有个愉快的一天。

4 个答案:

答案 0 :(得分:3)

编辑: 包括这样的脚本:

<script type="text/javascript" src="<%=ResolveUrl("~/js/jquery-1.4.4.min.js")%>" > </script>

或使用绝对路径

<script type="text/javascript" src="/js/jquery-1.4.4.min.js"></script>

答案 1 :(得分:0)

最可能的原因是jQuery脚本没有下载 - 可能是因为路径不好(如dioslaska所述)。

我想我会提到几种好方法来调试它,看看它是否正确。

第一种方法是使用Fiddler(免费)或优秀HttpWatch等工具(不幸免费)。这两个都允许您将每个请求发送到浏览器。如果这些脚本中的任何一个无法下载,您将看到一个错误(如果因为无法找到而无法下载,则会显示404错误代码。)

或者,查看渲染网页的来源,找到与jquery-1.4.4.min.js的脚本标记对应的行。将源中的url剪切并粘贴到新的浏览器窗口中(如果它是相对路径,请不要忘记添加“http:// myserver /”位)。此页面是否在浏览器中正确下载?如果不是 - 它几乎是罪魁祸首。

一旦你知道什么不下载,你可以开始识别路径的错误,你可以修复和测试它们。

通过这种方式,您可以调试这些错误,其中包含的文件(无论是脚本,CSS,图像还是其他任何内容)都没有被下载。

答案 2 :(得分:0)

我的怀疑是你的aspx页面中的空头。

删除此空结构

<asp:Content ID="cphHead" ContentPlaceHolderID="head" Runat="Server">
</asp:Content>

答案 3 :(得分:0)

工作解决方案:

HtmlGenericControl jQuery = new HtmlGenericControl("script");
jQuery.Attributes.Add("type", "text/javascript");
jQuery.Attributes.Add("src", this.ResolveClientUrl("~/js/jquery-1.5.1.min.js"));
Page.Header.Controls.Add(jQuery);

不太干净,但它正在发挥作用!