SharePoint 2013 弹窗效果

在SharePoint中想做一个弹出效果其实很简单,仅仅在js中使用SharePoint Modal Dialog, 以下做一个简单的例子:很多情况下我们会通过linkButton弹出一个详细页面,那么下面我们将以这样的场景作为例子。

场景: 在结果集里将鼠标停留在"Impact on Product Type" 列,并选中你所需要查看的信息,它将会弹出窗体并显示与impact on product type相关的信息

  首先我们看一下最终的效果图 (这里我选中第二条数据,在"Impact on Product Type"列下点击65000Transaction Management Software)

  

  接下来,我们将设计该弹出功能:

  1. 在Web Part中添加SharePoint的SPGridView控件(你也可以直接使用ASP里的LinkButton控件),在SPGridView里添加LinkButton控件,对于如何使用SPGridView控件这里就不多说了

  

 1 <SharePoint:SPGridView ID="gv_stdSearchResult" runat="server" Width="100%" AutoGenerateColumns="false"
 2                     AllowPaging="true" ShowHeader="true" AllowSorting="False" PageSize="10" OnRowDataBound="gv_stdSearchResult_RowDataBound"
 3                     OnPageIndexChanging="gv_stdSearchResult_PageIndexChanging" ShowHeaderWhenEmpty="True" HeaderStyle-CssClass="ms-viewheadertr">
 4                     <Columns>
 5                         <SharePoint:SPBoundField HeaderText="ID" DataField="ID" Visible="false">
 6                         </SharePoint:SPBoundField>
 7                          <asp:TemplateField HeaderText="Std/Reg No.">
 8                             <ItemTemplate>
 9                                 <asp:LinkButton ID="StdNumber" runat="server" Text=‘<%# Bind("Title") %>‘
10                                     OnClientClick=‘<%# "javascript:openDetialPage(\"" + (Eval("ID")) + "\"); return false;" %>‘></asp:LinkButton>
11                             </ItemTemplate>
12                         </asp:TemplateField>
13                         <SharePoint:SPBoundField HeaderText="Std/Reg Title in Chinese" DataField="ChineseName" SortExpression="ChineseName">
14                         </SharePoint:SPBoundField>
15                         <SharePoint:SPBoundField HeaderText="Std/Reg Title in English" DataField="EnglishName" SortExpression="EnglishName">
16                         </SharePoint:SPBoundField>
17                         <asp:TemplateField HeaderText="Impact on Product Type">
18                             <ItemTemplate>
19                                 <asp:LinkButton ID="impactProductLinkButton" runat="server" Text=‘<%# Bind("ImpactOnProduct") %>‘
20                                      OnClientClick=‘<%# "javascript:openCommentsDialog(\"" + SPEncode.HtmlEncode(Eval("ImapctOnProductGuid") as string) + "\"); return false;" %>‘></asp:LinkButton>
21                             </ItemTemplate>
22                         </asp:TemplateField>
23                         <SharePoint:SPBoundField HeaderText="Certification required" DataField="Cert" SortExpression="Cert">
24                         </SharePoint:SPBoundField>
25                     </Columns>
26                 </SharePoint:SPGridView>

  因为是在点击Link时将弹出窗体,所以在asp:LinkButton控件需要添加点击事件(OnClientClick=‘<%#"javascript:openCommentsDialog(\"" + SPEncode.HtmlEncode(Eval("ImapctOnProductGuid") as string) + "\"); return false;" %>‘),其中SPEncode.HtmlEncode(Eval("ImapctOnProductGuid") as string)是参数

 1 function openCommentsDialog(name) {
 2         var options = SP.UI.$create_DialogOptions();
 3         var localUrl = window.location;
 4         var urlStr = localUrl.protocol + "//" + localUrl.host + "/_layouts/15/ImpactOnProductTypeDetial.aspx?impactOnProductGuid=" + name;
 5         options.url = urlStr;
 6         options.height = 500;
 7         options.width = 500;
 8
 9         SP.UI.ModalDialog.showModalDialog(options);
10     }

  以上是openCommentsDialog方法,用于创建窗体,其中SP.UI.$create_DialogOptions()是SharePoint中已经封装好的创建窗体,url表示转到我们的详细页面(这里使用的是Application page),也可以定义窗体的高、宽。SP.UI.ModalDialog.showModalDialog(options)用于显示/打开该窗体。以下是详细页面(Application page)

 1 %@ Assembly Name="$SharePoint.Project.AssemblyFullName$" %>
 2 <%@ Import Namespace="Microsoft.SharePoint.ApplicationPages" %>
 3 <%@ Register TagPrefix="SharePoint" Namespace="Microsoft.SharePoint.WebControls" Assembly="Microsoft.SharePoint, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
 4 <%@ Register TagPrefix="Utilities" Namespace="Microsoft.SharePoint.Utilities" Assembly="Microsoft.SharePoint, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
 5 <%@ Register TagPrefix="asp" Namespace="System.Web.UI" Assembly="System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" %>
 6 <%@ Import Namespace="Microsoft.SharePoint" %>
 7 <%@ Assembly Name="Microsoft.Web.CommandUI, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
 8
 9 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="ImpactOnProductTypeDetial.aspx.cs" Inherits="ProductRequestEventReceiver.Layouts.ImpactOnProductTypeDetial" DynamicMasterPageFile="~masterurl/default.master" %>
10
11 <asp:Content ID="PageHead" ContentPlaceHolderID="PlaceHolderAdditionalPageHead" runat="server">
12 </asp:Content>
13
14 <asp:Content ID="Main" ContentPlaceHolderID="PlaceHolderMain" runat="server">
15     <div>
16         <SharePoint:SPGridView ID="gv_impactOnProductDetial" runat="server" Width="100%" AutoGenerateColumns="false"
17             AllowPaging="false" ShowHeader="true" AllowSorting="False" OnRowDataBound="gv_impactOnProductDetial_RowDataBound"
18             ShowHeaderWhenEmpty="True">
19             <Columns>
20                 <SharePoint:SPBoundField HeaderText="Proudct Guid" DataField="ProductGuid" Visible="false">
21                 </SharePoint:SPBoundField>
22                 <SharePoint:SPBoundField HeaderText="Product Type" DataField="ProductType" HeaderStyle-Font-Bold="true" HeaderStyle-Font-Size="13px">
23                 </SharePoint:SPBoundField>
24                 <SharePoint:SPBoundField HeaderText="Product Name" DataField="ProductFullName" HeaderStyle-Font-Bold="true" HeaderStyle-Font-Size="13px">
25                 </SharePoint:SPBoundField>
26             </Columns>
27         </SharePoint:SPGridView>
28     </div>
29 </asp:Content>
30
31 <asp:Content ID="PageTitle" ContentPlaceHolderID="PlaceHolderPageTitle" runat="server">
32     Impact on Product Type
33 </asp:Content>
34
35 <asp:Content ID="PageTitleInTitleArea" ContentPlaceHolderID="PlaceHolderPageTitleInTitleArea" runat="server">
36     My Application Page
37 </asp:Content>

时间: 2024-11-05 05:46:58

SharePoint 2013 弹窗效果的相关文章

SharePoint 2013 弹窗效果(二)

上一篇我们主要讲述如何通过showModalDialog方法进行弹出窗体,同时弹出信息定义在新的页面(Application Page),使用 SP.UI.$create_DialogOptions()里的url属性进行定义,在该文章中我们将介绍如何自定义弹出框中的信息(通过HTML). 什么时候使用SP.UI.$create_DialogOptions()里的html属性,主编建议在以下两种情况下可以使用,如果有朋友觉得还有更好的办法,您也可以提出您宝贵的意见供大家学习及参考.第一种:当在页面

SharePoint 2013 操作文档库ECB菜单

在SharePoint的使用中,我们经常需要定制SharePoint的一系列菜单,这里就包括ECB菜单,下面,我们简单了解一下ECB菜单如何定制,以及原理. 1.正常情况文档库的ECB菜单如下图: 2.我们首先复制如下js,然后在页面上添加引用 <script src="/_layouts/15/CORE2.JS" type="text/javascript"></script> 3.隐藏查看/编辑属性: 效果如下图: 4.隐藏工作流 效果如

在移动设备上优化SharePoint 2013站点

本文由SPFarmer翻译自Waldek Mastykarz的文章 移动市场在持续的增长,在不远的将来,使用移动设备浏览网站将会超过电脑.为了保证用户友好的体验,我们必须优化网站,以便在不同的设备上展示.SharePoint 2013 提供了一系列的选项来优化在移动设备上访问面向公众的网站.根据你的实际情况,你可以选择一个或者一系列组合的选项. 在过去的几年里,使用移动设备浏览网站得到了极大的增长.据一些研究者说,到2015年,使用移动设备访问网站会超过电脑.移动设备有不同的尺寸和功能.因为电脑

SharePoint 2013 使用查阅项实现联动下拉框

SharePoint列表使用中,经常会用到下拉框,而有些特殊的需求,会用到联动的下拉框,在SharePoint中默认没有这样的字段,所以如果实现,我们需要自己想办法. 这里,我们介绍如何使用JQuery+JavaScript客户端对象模型实现,下面让我简单介绍下实现的全过程. 1.创建基础列表CityList,保存的是城市名称,使用默认字段Title: 2.列表CityList的所有栏,我把Title字段的名称改为了City Name,如下图: 3.创建基础列表AreaList,用于保存所有区和

SharePoint 2013无代码实现列表视图的时间段动态筛选

本文介绍两种为列表视图设置时间段筛选器的方法.其中,第一个方法用于SharePoint Server,第二个方法同时还能用于SharePoint Foundation. 方法一:日期筛选器Web部件 先看一下接下来要用的列表,是一个任务列表: 为了实验方便,我们先建个页面,用来放置目标列表视图和筛选器. 1.打开SPD,选择左侧的“网站页面”,点击功能区里的“新建”->"Web部件页". 如果是已有页面,则右键高级模式编辑. 2.找到页面主要区域的WebPart Zone,在其中

实现一个基于 SharePoint 2013 的 Timecard 应用(中)

门户视图 随着 Timecard 列表的增多,如何查找和管理这许多的 Timecard 也就成了问题.尤其对于团队经理而言,他除了自己填写的 Timecard,还要审核团队成员的 Timecard 任务更重. 这里我把实际的需求简化成为 2 个主要的视图(但能够提供的效果和实际需求其实是非常接近的): Time Window 视图这个视图列出当前用户在所有可以填写的时间窗口中是否提交了 Timecard,起到提醒的作用. Timecard 视图这个视图列出在 Timecard 网站中,所有当前用

SharePoint 2013 表单认证使用ASP.Net配置工具添加用户

前 言 上面一篇博客,我们了解到如何为SharePoint 2013配置表单身份认证,但是添加用户是一个麻烦事儿:其实,我们还可以用Asp.Net的配置工具,为SharePoint 2013添加表单用户,下面让我们简单介绍下,如何操作. 打开Visual Studio,新建项目,选择Asp.net web application类型,如下图: 点击OK,进入选择模板页面,如下图: 创建完毕,双击打开web.config,如下图: 添加数据库连接串,连接的是我们表单认证的数据库,不要写错了,如下图

SharePoint 2013 App 局部开发,可替换 WebPart 开发

SharePoint 2013 新加入了APP 开发,较以往的自定义WebPart开发又多了一种开发选择.APP页面局部显示,就是在APP程序里添加WebPart:添加方法与“WebPart”类似,这里将详细介绍如何局部开发,以达到替换WebPart 的目的. 我是以SharePoint online 为测试环境,测试实例. 1 建立一个SharePoint 2013 的应用程序的解决方案 ,托管模式选择“SharePoint 托管”,项目名为:“Notice”,如下图: 2 右击项目,添加一个

SharePoint 2013:自定义ECB菜单项的添加

本文分别介绍了两种常用的添加ECB菜单项的方式. 声明式创建 这也是微软最佳实践推荐的方式.在VS中创建一个SharePoint空解决方案,并添加一个“空元素”类型的SPI. 在Elements.xml中,定义一个CustomAction,重点关注一下其中高亮部分的属性(本例在文档内容类型的项上添加了一个菜单项,点击导航到一个自定义应用程序页面,并传递项所在的列表的Id作为参数): 添加到Feature,并部署.效果如下: 服务器对象模型创建 这里会用到Feature的事件处理程序.本例同时还演