SharePoint 2013 中使用 delegate control AdditionalPageHead 的注意事项

delegate control 是SharePoint 中一些可扩展控件,通常我们可以把这些控件当做占位符来使用,因为我们可以轻松通过custom Elements来扩展它。

本文以常用delegate control AdditionalPageHead 为例讲述在SharePoint 2013 中使用 delegate control 要注意的事项。

通常我们扩展AdditionalPageHead 的步骤是这样的:

1. 新建一个SharePoint 的farm solution 

2. 新建一个User control,用于扩展AdditionalPageHead 


3.在这个control里写写上要实现的代码, 比如用JavaScript  输出一个Hello World

<%@ Assembly Name="$SharePoint.Project.AssemblyFullName$" %>
<%@ Assembly Name="Microsoft.Web.CommandUI, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<%@ Register Tagprefix="SharePoint" Namespace="Microsoft.SharePoint.WebControls" Assembly="Microsoft.SharePoint, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<%@ Register Tagprefix="Utilities" Namespace="Microsoft.SharePoint.Utilities" Assembly="Microsoft.SharePoint, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<%@ Register Tagprefix="asp" Namespace="System.Web.UI" Assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" %>
<%@ Import Namespace="Microsoft.SharePoint" %> 
<%@ Register Tagprefix="WebPartPages" Namespace="Microsoft.SharePoint.WebPartPages" Assembly="Microsoft.SharePoint, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="AdditionalPageHead.ascx.cs" Inherits="SocialTest.ControlTemplates.SocialTest.AdditionalPageHead" %>
<script type="text/javascript">
    alert("Hello World");
</script>

4.新建一个Custom Element:

<?xml version="1.0" encoding="utf-8"?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
  <Control Id="AdditionalPageHead" Sequence="100"
  ControlSrc="~/_CONTROLTEMPLATES/15/SocialTest/AdditionalPageHead.ascx">
  </Control>
</Elements>

这里需要注意的是一定要带上15这个目录夹,否则SharePoint 2013 会找不到AdditionalPageHead.ascx。

也不知道微软是不是故意的,如果不带15, SharePoint 2013 默认还会去14目录搜索AdditionalPageHead.ascx

部署这个解决方案后,效果就是每个页面(只要对应的master page里面包含了delegate control AdditionalPageHead )都会弹出Hello World





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
A:在Qt使用model和delegate可以实现高效的数据显示和修改。以下是使用模型和委托的步骤: 1. 创建一个继承自QAbstractItemModel类的自定义模型。 2. 实现以下方法: a. rowCount()和columnCount():分别返回数据项的行数和列数。 b. data():返回指定索引的数据项。 c. setData():设置指定索引的数据项的值。 d. flags():返回指定索引的数据项的标志,如是否可编辑、是否可选等。 e. index()和parent():返回指定行和列的索引和父索引。 f. headerData():返回表头数据。 3. 创建一个继承自QStyledItemDelegate类的自定义委托。 4. 实现以下方法: a. paint():绘制表格项。 b. createEditor():创建编辑器。 c. setEditorData():将数据传输到编辑器。 d. setModelData():从编辑器获取数据。 e. updateEditorGeometry():设置编辑器位置和大小。 5. 在需要使用表格视图的地方,创建一个QTableView对象,并设置model和delegate。 6. 将数据加载到模型,可以使用setRowCount()、setColumnCount()、setData()等方法。 7. 对表格项进行修改时,调用setData()方法,该方法调用模型的setData()方法,最终数据被保存在模型。 8. 在需要更新视图时,可以使用update()方法进行刷新。 注意事项: 1. model和delegate的生命周期需要保持一致,否则会导致内存泄漏。 2. 在使用自定义委托时,需要在model设置制定列的editable属性为true,否则无法触发编辑行为。 3. 在使用自定义委托时,需要考虑数据类型和格式,以便正确地显示和修改数据。 4. 在使用自定义委托时,需要考虑委托的样式和交互方式,以便提高用户体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值