视图xsl定制之嵌入服务器控件
SharePoint 2010 视图 xsl 文件中支持嵌入服务器控件,嵌入服务器控件时,系统先采用xsl将视图xml解析成一个类似UserControl的存在,然后执行UserControl。
代码示例如下:
- <xsl:stylesheet xmlns:x="http://www.w3.org/2001/XMLSchema" xmlns:d="http://schemas.microsoft.com/sharepoint/dsp" version="1.0" exclude-result-prefixes="xsl msxsl ddwrt" xmlns:ddwrt="http://schemas.microsoft.com/WebParts/v2/DataView/runtime"
- xmlns:asp="http://schemas.microsoft.com/ASPNET/20" xmlns:__designer="http://schemas.microsoft.com/WebParts/v2/DataView/designer" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt"
- xmlns:SharePoint="Microsoft.SharePoint.WebControls" xmlns:codeart="CodeArt.SharePoint.SmartQuery" xmlns:ddwrt2="urn:frontpage:internal">
- <xsl:output method="html" indent="no" encoding="uft-8" />
- <xsl:include href="/_layouts/xsl/main.xsl" />
- <xsl:include href="/_layouts/xsl/internal.xsl" />
- <xsl:decimal-format NaN="" />
- <xsl:template match="/" xmlns:aa="System.Web.UI">
- <xsl:value-of disable-output-escaping="yes" select="'<%@ Register Tagprefix="codeart" Namespace="CodeArt.SharePoint.SmartQuery" Assembly="CodeArt.SharePoint.SmartQuery, Version=1.0.0.0, Culture=neutral, PublicKeyToken=df96d56002e5fe16" %>'"/>
- <hr />
- <codeart:XXXWebPart runat="server"/>
- <hr />
- <xsl:apply-templates mode="RootTemplate" select="$XmlDefinition" />
- <hr/>
- </xsl:template>
- <xsl:template name="FieldRef_header.ZhuanYe" match="FieldRef[@Name='ZhuanYe']" mode="header">
- <th nowrap="" scope="col" onmouseover="OnChildColumn(this)" class="ms-vh2">
- <div class="ms-vh-div">
- <xsl:copy-of select="current()" />
- 专业
- <xsl:value-of select="@DisplayName"/>
- </div>
- </th>
- </xsl:template>
- </xsl:stylesheet>
需要注意的是:
并不是所有服务器控件都是可以嵌入xsl的,控件必须继承于WebControl,而不能只继承Control。原因:
XsltListViewWebPart解析xsl时,嵌入的控件解析成UserControl后,会增加额外的属性,如:
- <hr xmlns:aa="System.Web.UI" xmlns:ddwrt2="urn:frontpage:internal" xmlns:SharePoint="Microsoft.SharePoint.WebControls" xmlns:__designer="http://schemas.microsoft.com/WebParts/v2/DataView/designer" xmlns:asp="http://schemas.microsoft.com/ASPNET/20" xmlns:d="http://schemas.microsoft.com/sharepoint/dsp" xmlns:x="http://www.w3.org/2001/XMLSchema"、>
<asp:UpdatePanel runat="server" xmlns:asp="http://schemas.microsoft.com/ASPNET/20"><ContentTemplate><asp:Calendar runat="server" xmlns:aa="System.Web.UI" xmlns:ddwrt2="urn:frontpage:internal" xmlns:SharePoint="Microsoft.SharePoint.WebControls" xmlns:__designer="http://schemas.microsoft.com/WebParts/v2/DataView/designer" xmlns:d="http://schemas.microsoft.com/sharepoint/dsp" xmlns:x="http://www.w3.org/2001/XMLSchema" /></ContentTemplate></asp:UpdatePanel>
这些强制加入的名称控件属性显然不是标准的控件属性,而Control没有实现IAttributeAccessor, 不能任意增加自定义属性,所以会出错,WebControl实现了IAttributeAccessor接口,可以增加任意属性,所有不会出错,以上示例代码中嵌入了UpdatePanel,UpdatePanel直接继承Control,所以会出差。错误信息一般为:
- 分析器错误
- 说明: 在分析向此请求提供服务所需资源时出错。请检查下列特定分析错误详细信息并适当地修改源文件。
- 分析器错误消息: 类型“xxx”不具有名为“xmlns:asp”的公共属性。
视图xsl定制之嵌入服务器控件的更多相关文章
- View Programming Guide for iOS ---- iOS 视图编程指南(二)---View and Window Architecture
View and Window Architecture 视图和窗口架构 Views and windows present your application’s user interface and ...
- 数据库T-SQL语言操作(T-SQL语句、数据库、表、视图、索引)
T-SQL语言 按用途分四部分 数据定义语言(CREATE,DROP,ALTER) 数据操作语言(INSERT,DELETE,UPDATE) 数据查询语言(SELECT) 数据控制语言(GRANT,R ...
- 关于 ASP.NET MVC 中的视图生成
在 ASP.NET MVC 中,我们将前端的呈现划分为三个独立的部分来实现,Controller 用来控制用户的操作,View 用来控制呈现的内容,Model 用来表示处理的数据. 从控制器到视图 通 ...
- 2.MVC框架开发(视图开发----基础语法)
1.区别普通的html,在普通的html中不能将控制器里面的数据展示在html中. 在MVC框架中,它提供了一种视图模板(就是结合普通的html标签并能将控制器里传出来的数据进行显示) 视图模板特性: ...
- 关于ASP.NET MVC中的视图生成
在 ASP.NET MVC 中,我们将前端的呈现划分为三个独立的部分来实现,Controller 用来控制用户的操作,View 用来控制呈现的内容,Model 用来表示处理的数据. 从控制器到视图 ...
- ASP.NET MVC 中的视图生成
关于 ASP.NET MVC 中的视图生成 在 ASP.NET MVC 中,我们将前端的呈现划分为三个独立的部分来实现,Controller 用来控制用户的操作,View 用来控制呈现的内容,Mode ...
- asp.net -mvc框架复习(5)-ASP.NET MVC中的视图简单使用
1.视图分类 ASPX视图(现在讲解) Razor视图(后面讲解) ASPX 视图: 2.@page指令 作用:页面的声明 要求:必须放在第一行,常用指令属性如下: 3.服务器端内嵌语法 小脚本:在A ...
- 实验2、Flask模板、表单、视图和重定向示例
实验内容 1. 实验内容 表单功能与页面跳转功 能是Web应用程序的基础功能,学习并使用他们能够更好的完善应用程序的功能.Flask使用了名为Jinja2的模板引擎,该引擎根据用户的交互级别显示应用程 ...
- 关于UIView(转)
曾经有人这么说过,在iphone里你看到的,摸到的,都是UIView,所以UIView在iphone开发里具有非常重要的作用.那么UIView我们到底知道多少呢.请看看下面的问题, 如果这些你都知道, ...
随机推荐
- WPF textblock加入超链接
<TextBlock Grid.Row=" Margin="75,0,0,0"> <Hyperlink Name="BlogHl" ...
- 关于SubSonic3.0插件使用SqlQuery或Select查询时产生的System.NullReferenceException异常修复
早上在编写执行用例时,突然爆异常System.NullReferenceException: 未将对象引用设置到对象的实例 执行代码:
- iOS开发之抽屉效果实现
说道抽屉效果在iOS中比较有名的第三方类库就是PPRevealSideViewController.一说到第三方类库就自然而然的想到我们的CocoaPods,今天的博客中用CocoaPods引入PPR ...
- 安装infer整个过程
日期:2015-06-26 孟起 15:43:25 大神.. 孟起 15:43:38 我是不是照着这个安装 HelloWorld 15:45:05 直接找二进制文件安卓就行 孟起 15:46: ...
- Hammer.js分析(四)——recognizer.js
不同识别器会使用不同逻辑,根据从相关Input类获取到的事件对象和事件,实现自定义的触屏事件,例如tap.pinch等. 一.继承关系 Recognizer与前面的Input一样,也相当于是个抽象类. ...
- 【JAVA】基于MVC架构Java技术荟萃案例演练
基于JAVA-MVC技术的顾客管理项目案例总结 作者 白宁超 2016年6月9日22:47:08 阅读前瞻:本文源于对javaweb相关技术和资料汇总,涉及大量javaweb基础技术诸如:Servle ...
- 在 Git 中 Checkout 历史版本
昨天写代码的时候,误删了一个文件.今天发现的时候,commit 已经 push 到版本库了.本想用 git reset 回退版本,找回文件后重新提交.但是想起 Git 是一个版本控制系统哎,直接从版本 ...
- 设计模式(Design Pattern)系列之.NET专题
最近,不是特别忙,重新翻了下设计模式,特地在此记录一下.会不定期更新本系列专题文章. 设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结. 使用 ...
- Android手机总是提示:存储空间不足,解决方法
手机才有16G空间,用一段时间后,总是提示内存不足,各种清理软件都没卵用. 有一个方法立即见效: 1.进入Recovery 2.格式化 SDCard 博客园首席神棍 野生菌野菜干批发 大舍大得 小舍小 ...
- jquery实现更多内容效果
体验效果:http://hovertree.com/texiao/jquery/33/ 写个“更多内容的展开/收起”的js 代码如下: <!DOCTYPE html> <html&g ...