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 ...
随机推荐
- Probabilistic Graphical Models
http://innopac.lib.tsinghua.edu.cn/search~S1*chx?/YProbabilistic+Graphical+Models&searchscope=1& ...
- CommonJS 的 AMD 规范
异步模块定义(Asynchronous Module Definition,简称 AMD)API 描述了一种定义模块的机制,模块及其依赖模块可以通过这种机制进行加载.该机制特别适用于浏览器. 本规范曾 ...
- MyEclipse8.5集成Tomcat7时的启动错误:Exception in thread “main” java.lang.NoClassDefFoundError org/apache/commons/logging/LogFactory
今天,安装Tomcat7.0.21后,单独用D:\apache-tomcat-7.0.21\bin\startup.bat启动web服务正常.但在MyEclipse8.5中集成配置Tomcat7后,在 ...
- 自动化基础普及之selenium是啥?
Selenium 并不像QTP那样让人一下子就明白是什么?它是编程人员的最爱,但它却对测试新手产生了很大的阻碍. Selenium 是啥? Selenium RC是啥? Webdriver 又是啥? ...
- C#语法糖之 cache操作类 asp.net
因为考虑到我下面我将写session cookies 等 操作类 ,与cache具有共性. 所以都统一继承了IHttpStorageObject abstract class 来保函数风格的统一 , ...
- 使用fat-jar打包多个java工程为可执行文件
对于一个从C++转向Java的程序员来说,制作java的可执行文件,也算是比较棘手的问题.项目是前几个同事留下来的,几个必备的库文件和制作可执行文件的工具居然都是加密未解封的:不知道是不是因为公司和前 ...
- 脊柱外科病人资料管理系统的界面设计分析(2)--JOA评分记录的实现
在上篇随笔<脊柱外科病人资料管理系统的界面设计分析>中介绍了一些常用的界面设计方面的内容,本篇继续上一篇,介绍脊柱外科病人管理系统的JOA评分记录模块的界面设计以及实现方面的内容. JOA ...
- C语言字符串匹配函数
C语言字符串匹配函数,保存有需要时可以用: #include <stdio.h> #include <stdlib.h> #include <string.h> # ...
- Python OOP(1):从基础开始
本文旨在Python复习和总结: 1.如何创建类和实例? # 创建类 class ClassName(object): """docstring for ClassNam ...
- 在windows下配置Eclipse + go环境
http://blog.csdn.net/hengyunabc/article/details/7371446 本文章地址:http://blog.csdn.net/hengyunabc/articl ...