1

我正在开发一个必须在模式框中显示一些信息的 Web 部件。在过去使用 jQuery UI 并欣赏它在 .NET 世界中的简单性和接受度后,我试图找出通过 Web 部件集成库的推荐方法是什么。网上有很多文章,但是为了寻找简洁的说明,从一篇文章跳到另一篇文章,我有点筋疲力尽了!

以下是我的具体限制:

  1. 我不想将 jQuery 和 jQuery UI 添加到母版页。
  2. 我不想使用 CEWP 将库添加到页面,因为有大量现有的 Web 部件页面将使用我正在开发的 Web 部件。
  3. 无论我使用何种机制将库添加到页面,我都想确保它们不会与已添加到该页面的 jQuery 冲突。例如,如果我添加了此自定义 Web 部件的两个实例,则第二个实例理想情况下应该检测到 jQuery 已添加到页面中,并且不得再次添加。
  4. 使用 Designer 根本不是一种选择(我只是提出了这个问题,尽管它很可能不是一种选择)。

希望这听起来不太离题,但我需要在这个模态框中添加一个 jqGrid;我正在考虑一种更简单的方法,例如使用 SP 应用程序页面 + IFRAME 的组合。

我希望有人可以给我一步一步的指导来开始。这无异于中了彩票,在这一点上:-) 谢谢!

4

2 回答 2

0

如果您将 jQuery 和 jQueryUI 脚本添加到样式库,您可以使用RegisterClientScriptInclude

// Define the name, type and url of the client script on the page.
String csname = "jQuery";
String csurl = "/Style Library/Scripts/jquery-2.0.3.min.js";
Type cstype = this.GetType();

// Get a ClientScriptManager reference from the Page class.
ClientScriptManager cs = Page.ClientScript;

// Check to see if the include script exists already.
if (!cs.IsClientScriptIncludeRegistered(cstype, csname))
{
    cs.RegisterClientScriptInclude(cstype, csname, csurl);
} 

对 jQueryUI 再次执行相同操作,根据需要替换对 jQuery 的引用。

于 2013-10-12T08:19:09.100 回答
0

要将 javascript 动态添加到网页,您可以执行以下操作:

var jQscript = document.createElement('script');
jQscript.type = 'text/javascript';
jQscript.src = '//ajax.aspnetcdn.com/ajax/jQuery/jquery-1.9.1.min.js';

if (typeof (jQuery) == 'undefined') //you can use !jQuery.ui for jQuery UI
    document.getElementsByTagName('head')[0].appendChild(jQscript);

//make sure jQuery is fully loaded before trying to use it

为了确保它不会破坏页面中的任何其他内容,请参阅 jQuery.noConflict()。

于 2013-10-11T17:23:06.477 回答