Sharepoint学习笔记—习题系列--70-573习题解析 -(Q111-Q114)
Question 111
You create a custom page layout that contains the following code segment. (Line numbers are included for reference only.)
01 Please enter a number:
02 <SharePointWebControls:InputFormTextBox ID="NumberTextBox" runat="server"/>
03
You need to prevent the page from being saved if NumberTextBox is empty.
Which code segment should you add at line 03?
A. <script type="javascript">if(document.getElementById('NumberTextBox').value = '') return false;</script>
B. <script type="javascript">if(document.getElementById('NumberTextBox').value = '') return true;</script>
C. <SharePointWebControls:InputFormCompareValidator ID="NumberValidator" runat="server" ControlToValidate="NumberTextBox"/>
D. <SharePointWebControls:InputFormRequiredFieldValidator ID="NumberValidator" runat="server" ControlToValidate="NumberTextBox"/>
解析:
本题题意是指在一个页面上有一个输入文本框控件,要求你实现此输入文本框必须有值才能提交页面。
根据题意自然想到校验控件,于是马上定位到选项B.C。如果对校验控件比较熟悉的马上进一步定位到选项D。因为选项C一般用于两个输入框,并校验其输入值的大小逻辑的。而选项C则是要求输入框必须录入值的。
事实上,Sharepoint还提供了如下校验控件:
.InputFormRangeValidator: 判断录入值是否在一定的合理范围内。
.InputFormRegularExpressionValidator :通过正则表达式来校验录入的数据。
.InputFormCheckBoxListValidator :类似于InputFormRequiredFieldValidator,只不过针对的是CheckBox,要求必须作出选择。
.InputFormCustomValidator: 由用户自定义校验的逻辑,当然实现更灵活,更强大。
至于选项A.B,都是试图通过常规的ASP.NET的方式去获取NumberTextBox控件,很显然会失败,因为在Sharepoint中,这些控件的ID绝不是你设计时的那样,Sharepoint加入了它自己的管理规范,你可以自己在呈现的页面上使用IE Developer Tool 来查看Sharepoint的控件命名就清楚了。
所以本题目正确选项应该是D
参考:
http://karinebosch.wordpress.com/sharepoint-controls/sharepoint-validation-controls/
Question 112
You create a custom page layout that contains code-behind.
You need to identify whether the page is in Edit mode or in Display mode.
What should you use?
A. SPContext.Current.FormContext
B. SPContext.Current.ListItem.Properties
C. this.Form
D. this.Web.ASPXPageIndexMode
解析:
本题是判断一个用户定义页面是呈编辑状态还是显示状态。
分别分析备选项:
选项A涉及到FormContext类
FormContext类有一个很好的方法:
1. SetFormMode 此方法用来设置当前的SPControlMode值如下
Invalid 控件处于无效状态
Display 控件处于显示状态
Edit 控件处于编辑状态
New 控件处于创建状态
FormContext 类有两个有用的属性
1. FieldControlCollection – 获取Field控件集
2. FormMode – 获取当前的SPControlMode值(可用来判断是显示模式还是编辑模式)
所以选项A应该是本题答案。
再来看其它选项:
选项B. 是获取当前ListItem对象的属性集,与显示模式无关。
选项C. this.Form 获取当前Form
选项D. this.Web.ASPXPageIndexMode 获取或设置被WebSite使用的.aspx页的页索引状态值[是枚举值],它有3个值:
1.Always: 如果值为1,则表示页面索引(page indexing)功能可以使用。
2.Automatic 如果值为0,则表示页面索引(page indexing)功能可以自动启用。
3.Never 如果值为2,则表示页面索引(page indexing)功能不能启用。
所以本题目正确选项应该是A
参考:
SPFormContext.FormMode Property
http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spformcontext_properties.aspx
http://msdn.microsoft.com/zh-cn/library/microsoft.sharepoint.webcontrols.spcontrolmode.aspx
http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spcontext_members.aspx
http://msdn.microsoft.com/zh-cn/library/microsoft.sharepoint.webaspxpageindexmode.aspx
Question 113
You create a custom field type and a CustomFieldControl.ascx user control.
You need to write the code-behind of the CustomFieldControl.acsx user control.
Which object should you override?
A. BaseFieldControl
B. SPFieldCalculated
C. SPFieldText
D. WebPart
解析:
此题涉及到SharePoint 列表数据模型中的自定义字段类型的创建。
在 SharePoint Foundation 中存储业务信息时,您可能会遇到以下情况:重要的业务数据与 SharePoint Foundation 中包含的字段类型不相符,或者您希望进一步自定义这些常规字段类型。SharePoint Foundation 使您能够创建自定义字段类型。这些自定义字段可以包括自定义数据有效性和自定义字段呈现。当用户设置基于您的自定义字段类型的属性变量和新建列时,您还可以自定义处理和呈现该自定义字段类型的可变属性的方式。
下面我们大致了解一下如何创建自定义字段类型(即步骤):
1. 创建字段类型定义
字段类型定义是一个 XML 文件,其中包含 Microsoft SharePoint Foundation 对字段类型进行注册和正确呈现字段所需的信息。最重要的是,其中包含有关含有已编译字段类型的程序集的信息。
2. 创建字段类
字段类是一种类,其实例可以表示基于您的自定义字段类型的特殊字段。此类必须继承自 SPField 或 SharePoint Foundation 中派生自它的某一个类。
此类还可以包含字段类型的自定义数据验证。
3.(可选)创建自定义 XSLT 样式表
使用 XSLT 样式表是 SharePoint Foundation 在列表视图中呈现字段的标准方式。默认情况下,SharePoint Foundation 的内置样式表只以纯文本形式呈现字段的值。如果要在列表视图中显示各种不同的呈现形式,则系统呈现自定义字段所需的一个基本要素是自定义 XSLT 样式表。您可以根据 fldtypes_*.xsl 模式对其命名,并将其部署到 %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATE\LAYOUTS\XSL。自定义样式表优先于默认样式表。
4. 创建呈现控件类【即本题所实施的步骤】
可以将呈现控件类与呈现模板一起使用,以便在“新建”模式、“编辑”模式或“显示”模式中呈现您的字段。此类必须从 BaseFieldControl 或从它派生的 SharePoint Foundation 中的类之一继承。可将此类编译为与字段类相同的程序集。
验证逻辑由字段呈现控件的 Validate、IsValid 和 ErrorMessage 成员以及基础字段类型的 GetValidatedString 方法实现。(CreateChildControls 可能会调用 Validate。)
5. 创建一个或多个呈现模板
每个字段呈现控件至少具有一个与之关联的字段呈现模板,以便在“新建”、“编辑”或“显示”模式中呈现字段。通过让字段呈现控件在它的一个属性中包含对字段呈现模板 ID 的引用,即可实现这种关联。在呈现时,SharePoint Foundation 通过搜索 %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATE\CONTROLTEMPLATES 中 .ascx 文件中声明的所有呈现模板的 ID 来查找所需模板(Web 应用程序启动时将加载所有这些模板)。
6.(可选)创建字段值类型
如果要创建一个自定义字段类,该字段类要求字段数据采用特殊数据结构,则可以创建一个值类(或结构)来包含您的字段数据。
7.(可选)创建编辑控件
所有字段类型都需具有名称、数据类型、说明和其他常见属性;不过许多字段类型还具有仅与该特定类型的字段关联的属性。当用户创建基于字段类型的新列时,他们在用户界面 (UI) 中设置这些变量属性。通常,字段类型定义中的元素可确定如何呈现这些属性设置控件。但有时需要特殊编辑控件。此类控件在用户控件中进行定义;用户控件即 .ascx 文件,它通常有一个包含其逻辑的代码隐藏文件。如果需要执行自定义功能(例如,复杂的计算逻辑、从数据源中查找值或对用户在配置新列时可能选择的值进行自定义数据验证),则建议创建特殊编辑控件。
8. 部署元素
由上面第4步的标注我们就知道了选项A是本题的正解。
再来看其它选项:
选项B. SPFieldCalculated 代表计算字段。它不是派生自BaseFieldControl类,所以根据上面的步骤4中的描述,应该排除。
选项C. SPFieldText 代表单行文本字段,它也不是派生自BaseFieldControl类,所以根据上面的步骤4中的描述,应该排除。
选项D. WebPart 代表Web控件。
所以本题目正确选项应该是A
参考:
http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.webcontrols.basefieldcontrol.aspx
http://msdn.microsoft.com/zh-cn/library/microsoft.sharepoint.spfieldcalculated.aspx
http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spfieldtext.aspx
Question 114
You create a custom page layout that has a field control named Field1.
You need to ensure that Field1 is only visible when users modify the contents of the page.
Which parent control should you use for Field1?
A. EditModePanel
B. PageLayoutValidator
C. PublishingContext
D. ValidatorAggregator
解析:
本题涉及到控制页面布局(Page Layout)中的字段控件(Field Control)的显示,本题只想让此字段控件在我们编辑页面布局时显示出来。
分别分析各选项:
选项A. EditModePanel:当一个页面在浏览器中呈现时,它有两种显示模式:编辑(Edit)模式或显示(Display)模式。阅览者看到的只能是显示模式,而页面的作者或修改者则还可以看到编辑模式。你可以使用EditModePanel 控件来结合页面的当前显示模式以控制其它控件的显示与否。它就像一个容器,你可以把字段控件放在里面,通过控制此容器的相关属性来控制其内容的呈现。网上最常用的做法是当页面处于Display模式时隐藏某些控件,而处于Edit模式时则呈现某些控件,但实际上它的用法不只这种,你可以查问相关文档深入研究。
选项B. PageLayoutValidator:用来检验一个页面布局是否在Master Page Gallery中存在。
选项C. PublishingContext:用于在Publishing页面上创建一个录入字段,此控件用在页面发布的编辑模式。
选项D. ValidatorAggregator:代表一组针对某控件的校验器(Validator) 。
所以本题目正确选项应该是A
参考:
http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.publishing.webcontrols.editmodepanel.aspx
http://msdn.microsoft.com/zh-cn/library/ms517332.aspx
http://msdn.microsoft.com/zh-cn/library/microsoft.sharepoint.publishing.webcontrols.pagelayoutvalidator(v=office.14).aspx
Sharepoint学习笔记—习题系列--70-573习题解析 -(Q111-Q114)的更多相关文章
- Sharepoint学习笔记—ECM系列—文档列表的Metedata Navigation与Key Filter功能的实现
如果一个文档列表中存放了成百上千的文档,想要快速的找到你想要的还真不是件容易的事,Sharepoint提供了Metedata Navigation与Key Filter功能可以帮助我们快速的过滤和定位 ...
- Sharepoint学习笔记—ECM系列--文档集(Document Set)的实现
文档集是 SharePoint Server 2010 中的一项新功能,它使组织能够管理单个可交付文档或工作产品(可包含多个文档或文件).文档集是特殊类型的文件夹,它合并了唯一的文档集属性以及文件夹和 ...
- Sharepoint学习笔记—习题系列--70-576习题解析 --索引目录
Sharepoint学习笔记—习题系列--70-576习题解析 为便于查阅,这里整理并列出了70-576习题解析系列的所有问题,有些内容可能会在以后更新. 需要事先申明的是: 1. ...
- Sharepoint学习笔记—习题系列--70-573习题解析 --索引目录
Sharepoint学习笔记—习题系列--70-573习题解析 为便于查阅,这里整理并列出了我前面播客中的关于70-573习题解析系列的所有问题,有些内容可能会在以后更新, ...
- Deep Learning(深度学习)学习笔记整理系列之(五)
Deep Learning(深度学习)学习笔记整理系列 zouxy09@qq.com http://blog.csdn.net/zouxy09 作者:Zouxy version 1.0 2013-04 ...
- Deep Learning(深度学习)学习笔记整理系列之(八)
Deep Learning(深度学习)学习笔记整理系列 zouxy09@qq.com http://blog.csdn.net/zouxy09 作者:Zouxy version 1.0 2013-04 ...
- Deep Learning(深度学习)学习笔记整理系列之(七)
Deep Learning(深度学习)学习笔记整理系列 zouxy09@qq.com http://blog.csdn.net/zouxy09 作者:Zouxy version 1.0 2013-04 ...
- Deep Learning(深度学习)学习笔记整理系列之(六)
Deep Learning(深度学习)学习笔记整理系列 zouxy09@qq.com http://blog.csdn.net/zouxy09 作者:Zouxy version 1.0 2013-04 ...
- Deep Learning(深度学习)学习笔记整理系列之(四)
Deep Learning(深度学习)学习笔记整理系列 zouxy09@qq.com http://blog.csdn.net/zouxy09 作者:Zouxy version 1.0 2013-04 ...
- Deep Learning(深度学习)学习笔记整理系列之(三)
Deep Learning(深度学习)学习笔记整理系列 zouxy09@qq.com http://blog.csdn.net/zouxy09 作者:Zouxy version 1.0 2013-04 ...
随机推荐
- Jenkins+Maven+SVN快速搭建持续集成环境(转)
Jenkins是一个可扩展的持续集成引擎,Jenkins非常易于安装和配置,简单易用,下面看看我们是如何几分钟就快速搭建一个持续集成环境吧. 假设我们目前已经有2个maven项目:entities(J ...
- hessian入门
hessian简介 Hessian是二进制的web service协议,官方网站提供Java.Flash/Flex.Python.C++..NET C#等实现.Hessian和Axis.XFire都能 ...
- Weblogic 10.3.6生产模式启动
生产模式启动里需要输入用户名和密码,很麻烦.在域的/security目录下创建文件boot.properties,内容为: username=weblogic password=weblogic123 ...
- c3p0配置
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN&q ...
- SeaJS 模块化加载框架使用
SeaJS 是一个遵循 CMD 规范的模块化加载框架 CommonJS,CMD,AMD等规范后文会提到,这里主要先了解如何在代码中使用. 如果你有使用过nodejs ,那么理解起来就容易多了. 我们通 ...
- 计数排序 + 线段树优化 --- Codeforces 558E : A Simple Task
E. A Simple Task Problem's Link: http://codeforces.com/problemset/problem/558/E Mean: 给定一个字符串,有q次操作, ...
- 环信SDK与Apple Watch的结合(1)
该系列是记录在apple watch上开发IM,用到了最近挺流行的环信IM SDK. 一.先来一段网上随处可查到的信息: 1.两种分辨率 1.65寸 312*390 1.5寸 272*340 2.开发 ...
- .net C# 对虚拟目录IIS的操作
一.查看虚拟目录是否存在 private bool IsExitesVirtualDir(string virtualdirname) { bool exited =false; Dire ...
- 使用.NET统计文件夹中文件总数
软件下载: http://hovertree.com/h/bjaf/hwqtjwjs.htm 截图: 使用方法:点击按钮,选择文件夹,就可以显示文件夹中包含的文件总数. 这个项目包含在HoverTre ...
- 简单使用Dos命令关闭计算机
作为一个刚进It行业的新手,我比较喜欢搜寻一些对我有帮助的东西,下面是用本机的dos命令关机的例子: 用window+r打开运行窗口,输入cmd,进入控制台,查找关机的相关命令,输入shutdown. ...