65.9K
CodeProject 正在变化。 阅读更多。
Home

jQuery 与 SharePoint 2010

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.57/5 (4投票s)

2013 年 2 月 12 日

CPOL

4分钟阅读

viewsIcon

111087

downloadIcon

1428

将 JQuery 集成/用于 SharePoint 2010

下载

引言

最近我一直在研究将 JQuery 与 SP 2010 站点集成。本文将是 JQuery 系列文章中的第一篇。本文将讨论如何将 JQuery 与 SharePoint 2010 集成/使用。对于希望在 SharePoint 中使用 JQuery 的开发人员来说,必须先将 JQuery 文件/插件包含到门户中,然后才能开始使用它开发用户界面。我们将从一个小型的“Hello World”程序开始,并了解开发人员如何使用 JQuery 库与 SP 2010 列表进行通信,用于 SharePoint Web 服务

JQuery 与 SharePoint 站点集合的集成

以下部分描述了如何使用 JQuery 和 SP 2010 编写“hello world”代码。这对于您集成任何 JQuery 库和插件来说是必须的步骤。

1. 创建站点集合,命名为“JqueryDemo”。

2. 从 此处 下载 JQuery。我下载了“jquery-1.8.3.min.js”版本的文件。

3. 下载后,将其添加到名为“JS”的 SharePoint 文档库中。此库名称可以根据您的项目需求而定。所有 JavaScript 文件和相关的 JQuery 文件都添加在此处。

4. 创建一个名为“Include.txt”的文本文件,其中将包含对上面添加的 JQuery 文件的引用。

<html>
    <head>
        <script src="/sites/JQueryDemo/JS/jquery-1.8.3.min.js" type="text/javascript"></script>
    </head>
</html>

5. 将“Incude.txt”文件添加到通过上一步创建的“JS”文档库中。这也可以是您的 sharepoint 内的任何文件夹。确保您知道该文件的相对路径。

6. 对于“Hello World”演示,让我们将以下代码片段包含到文本文件“QuerySharedDocuments.txt”中。

    <html>
    <head>
        <script src="/sites/JQueryDemo/JS/jquery-1.8.3.min.js" type="text/javascript"></script>
        <script type="text/javascript">
            $(document).ready(function() {
                alert("Hello World");
            });
        </script>
    </head>
    <body>
    </body>
    </html>

7. 将“QuerySharedDocuments.txt”文件添加到“JS”文档库

   

8. 创建一个名为“JQueryTest”的新 sharepoint 页面

9. 导航到“JQueryTest”页面或导航到您想要测试上述代码的页面。

10. 添加一个内容编辑器 Web 部件。

11. 编辑 Web 部件以修改内容链接以指向“/sites/JQueryDemo/JS/Include.txt”。这将确保在此页面中引用所需的 java 脚本和 JQuery 文件。

12. 可以将此内容编辑器 Web 部件的标题留空,因为它仅用于引用 JQuery 文件。

13. 在此下方添加另一个内容编辑器 Web 部件,并将内容链接修改为指向“/sites/JQueryDemo/JS /QuerySharedDocuments.txt”

14. 将内容编辑器 Web 部件的标题更改为“共享文档列表”。

15. 保存页面并运行页面。现在它应该显示“Hello World”消息,如下所示。

16. 现在我们已经成功完成了 SharePoint 内的 JQuery“Hello world”程序。让我们看看如何使用 JQuery 查询文档库。

2 查询 SharePoint 文档库

以下部分将展示如何通过 JQuery 查询“共享文档”库并以表格格式呈现内容。为此,您可以调用 SharePoint 公开的列表 Web 服务,或者您可以使用来自 此处 的 SharePoint Web 服务的 JQuery 库。我更喜欢使用后一种选择,因为它更灵活且易于编写。您需要从 此处 下载最新的 JQuery 文件。我下载了“jquery.SPServices-0.7.2.js”版本。

1. 将文件“jquery.SPServices-0.7.2.js”添加到上面创建的“JS”文档库中。

2. 在“Include.txt”中包含以下代码行,并将其上传到“JS”文档库。

    <html>
        <head>
            <script src="/sites/JQueryDemo/JS/ jquery-1.8.3.min.js " type="text/javascript"></script>
            <script src="/sites/JQueryDemo/JS/jquery.SPServices-0.7.2.js" type="text/javascript"></script>
        </head>
    </html>

3. 修改“QuerySharedDocuments.txt”以查询“共享文档”文档库,并以表格格式列出所有项目。

4. 在 body 标签之间添加以下 html 代码。这将用于在客户端呈现 HTML。

   
<table id="documentListtable">
    <tr class="row-template">
        <td class="row-column">Document name </td>
        <td class="row-column">Author </td>
        <td class="row-column">Last Modified On </td>
        <td class="row-column">Doc type </td></tr>
</table>
<div id="templates"style="display: none">
    <table>
        <tr class="row-template">
            <td aligh="center"class="DocumentName" style="width: 100px;">
            </td><td class="Author"style="width: 100px;"></td>
            <td class="LastModifiedOn" style="width: 100px;"></td>
            <td class="Doctype" style="width: 100px;"></td>
        </tr>
    </table>;
</div>

5. id 为“templates”的 div 下将用于克隆行。• 每列的值将通过在 JQuery 中收到的文档库 XML 中进行导航来动态设置。设置值后,它们将附加到 id 为“documentListtable”的表中。

6. 以下代码用于通过查询“共享文档”库来获取文档列表及其相关属性。

• 操作:在列表 Web 服务中要执行的方法。此处使用“GetListItems”从“ListName”参数中提到的列表中获取项目。

• async:该方法应以异步方式还是同步方式调用

• listName:列表名称。在这种情况下,它是“共享文档”。

• Completefunc:应该调用哪个方法作为回调?

• CAMLRowLimit:应获取的行数。

    $(document).ready(function () { $().SPServices({ operation:"GetListItems", 
                                                     async: false, 
                                                     CAMLRowLimit: 5, 
                                                     listName: "Shared Documents", 
                                                     completefunc: fnCallBack 
                                }); });
    

7. 以下部分将解释回调函数将如何遍历 xml 并向“documentListtable”表添加行。以下代码具有内联注释,不言自明。

    
        function fnCallBack(xData, Status) {
            var index = 0;
            $documentListtable = $("#documentListtable");
            //Navigate through the XML
            $(xData.responseXML).find("z\\:row, row").each(function () {

                //Get the values to a local variable
                var _url = $(this).attr("ows_FileRef").split(";#")[1];
                var _name = $(this).attr("ows_LinkFilename");
                var _pdfLink = $("" + _name + "");
                var _author = $(this).attr("ows_Editor").split(";#")[1];
                var modifiedOn = $(this).attr("ows_Modified");
                var _DocIcon = $(this).attr("ows_DocIcon");

                //Create clone of the table row
                var $row = $("#templates").find(".row-template").clone();

                //Add values to the column based on the css class
                $row.find(".DocumentName").html(_pdfLink);
                $row.find(".Author").html(_author);
                $row.find(".LastModifiedOn").html(modifiedOn);
                $row.find(".Doctype").html(_DocIcon);

                //Change the style for even rows
                if (index % 2 == 0) {
                    $row.addClass("jtable-row-even")
                }
                index = index + 1;
                //add the row to table
                $documentListtable.append($row);
            });
        }

    

8. 如何呈现?

   

9. 它将只获取 5 行,因为 CAMLRowLimit 设置为 5。

10. 在“QuerySharedDocuments.txt”中添加的样式,用于为表格行提供交替颜色。

     
        <style>
        .row-template
        {
            background: rgb(248, 248, 248);
            padding: 2px;
            height: 30px;
        }
        
        .row-column
        {
            width: 150px;
            align: left;
            font-weight: bold;
        }
        
        .jtable-row-even
        {
            background: rgb(240, 240, 240);
        }
    
        .row-template
        {
            background: rgb(248, 248, 248);
            padding: 2px;
            height: 30px;
        }
        
        .row-column
        {
            width: 150px;
            align: left;
            font-weight: bold;
        }
        
        .jtable-row-even
        {
            background: rgb(240, 240, 240);
        }
    
        .row-template
        {
            background: rgb(248, 248, 248);
            padding: 2px;
            height: 30px;
        }
        
        .row-column
        {
            width: 150px;
            align: left;
            font-weight: bold;
        }
        
        .jtable-row-even
        {
            background: rgb(240, 240, 240);
        }
    
        .row-template
        {
            background: rgb(248, 248, 248);
            padding: 2px;
            height: 30px;
        }
        
        .row-column
        {
            width: 150px;
            align: left;
            font-weight: bold;
        }
        
        .jtable-row-even
        {
            background: rgb(240, 240, 240);
        }
        </style>
    

示例代码

代码

参考文献

https://jqueryjs.cn/

http://spservices.codeplex.com/

https://codeproject.org.cn/Articles/429474/Load-while-scrolling

 

© . All rights reserved.