上次当我们创建事件Receiver,输入错误格式电话时,出现很难看的错误消息指示事件Receiver取消了请求。这对于用户是很难理解的。它没有指出错误时由于数据验证还是SharePoint的问题。这次我们自定义这个错误信息,指出错误原因。
1. 打开VS上次创建的解决方案。
2. 打开EventReceiver1.cs。在properties.cancel=true前添加下面两行代码
string sErrMsg="Bussiness Phone is not in correct format";
properties.ErrorMessage=sErrMsg;
3. 对Email同样操作。
4. 启动调试。
5. 输入错误格式的电话号码。
How it works...
ItemAdding方法有个属性Error Message,默认为null。当SharePoint遇到这个问题时,使用默认错误信息。添加自定义错误信息到这个域可以让SharePoint现实你的错误信息。
There's more...
如果你只想直接不显示错误信息。只需要这样设置状态属性。
properties.Status = SPEventReceiverStatus.CancelNoError;
More information – How to get field names
在事件Receiver中我们使用域名WorkPhone代替Business Phone,Email代替Email Address。我如何获得这些名称呢?使用Add SharePoint Connection。通过菜单--添加SharePoint Connection。
提供你站点的URL,它会以树结构列出所有站点信息。只读不能做任何修改。你可以导航到联系人列表Contacts。
你可以选择Business Phone域,在属性窗口查看InternalName。请自行查看不同域属性。你会发现一些有趣的属性。