ASP.NET UserControl中的jQuery

4

情景1

页面上只包含'MultiSelect'用户控件。在这里,jQuery运行良好。

情景2

我将'MultiSelect'用户控件移动到一个使用主页面和UpdatePanel的项目中。页面的层次结构为:

主页面 --> 内容页面 --> Div --> MultiSelect用户控件

在这里,jQuery不起作用。

关于MultiSelect用户控件

该控件具有对jQuery文件的引用,并包含许多分组的复选框。因此,如果我单击组标题复选框,则所有子复选框都将被选中。

我的问题是

  1. 为什么情况1中jQuery不起作用?

  2. 在主页面、内容页面还是用户控件本身中链接jQuery文件的最佳位置在哪里?

  3. 我听说如果我们使用UpdatePanel,我们需要使用PageRequestManager。

  4. 在Code Behind文件中编写JavaScript代码能解决问题吗?


嗯。在ASP.NET用户控件中使用jQuery时,我们必须执行以下操作(所有步骤都不是必需的)。

a. 您可以在Code Behind文件中编写代码。在那里,您必须使用PageRequestManager

b. 您可以在主页面中放置对jQuery的引用。


一般来说,在这个网站上,据我所知,如果你说“我的东西不能工作”,但不解释你是怎么得出结论的;如何?为什么?异常信息?等等,你将受到批评... - Smudge202
如果你将你的 jQuery 调用从 ``$(selector)替换为jQuery(selector)`,会出现问题吗? - Steve B
2个回答

3

可能您的JQUERY与AJAX JavaScript存在冲突。如果您将我们的jquery放在用户控件中,请检查其路径。如果用户控件在一个文件夹中,则路径不应按照用户控件。路径始终根据母版页或父页面。您可以通过Firebug测试您的javascript错误,或者如果您有最新版本的火狐浏览器,请按ctrl+shift+k。刷新您的页面并检查您的函数为什么不起作用。您将找到JavaScript错误。


2

我有一个问题,但通过很多测试可以解决这个问题的详细信息。

在asp页面中定义和导入css和jQuery文件的最佳位置不应添加在ascx(用户控件)中。

使用jQuery和Javascript的用户控件与Update Panel存在冲突。如果您也在用户控件中使用jQuery和Javascript,则删除Update Panel。然而,您仍然可以这样做:

     <asp:UpdatePanel ID="UpdatePanel1" runat="server" ChildrenAsTriggers="true"   UpdateMode="Always"
RenderMode="Block">

在用户控件中。

并将脚本管理器设置在您的主页面或包含用户控件的asp页面中。

根据您提供的PageRequestManager使用帮助,我进行了尝试,但为页面生成的脚本与更新面板发生冲突并导致崩溃。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接