zoukankan      html  css  js  c++  java
  • SharePoint 调查列表的自定义错误页面

    场景:

    使用SharePoint的调查列表做调查问卷的时候,我们经常要设置成不允许多次答复,这样的话每个人就只能答复一次。

    问题:

    可是这样会产生一个问题,就是如果一个人第二次答复的话,那么出现的错误提示页面(如下图)不是很友好。

    image

    尝试的解决方案:

    如果熟悉SharePoint 2010的开发的话,那么可定会想到Event Handler这个解决方案。因为在2010中,可是实现使用Event Handler实现自定义错误页面。有了这个方案,那么接下来就是一些细节性的问题了。

    1.首先查询当前用户是否在列表中回复过帖子;

    2.如果回复过,那么就跳到自定义页面。

    代码:

      public override void ItemAdding(SPItemEventProperties properties)
           {
               SPList currentList = properties.List;
               SPQuery query = new SPQuery();
               query.Query = "<Where><Eq><FieldRef Name='Author'/><Value Type='Integer'><UserID Type='Integer'/></Value></Eq></Where>";
               SPListItemCollection items = currentList.GetItems(query);
               if (items.Count == 1)
               {
                   properties.Cancel = true;
                   properties.Status = SPEventReceiverStatus.CancelWithRedirectUrl;
                   properties.RedirectUrl = "/_Layouts/MyEventError.aspx";
               }          
           }

    疑问:

    当你代码完成后,并且成功部署,去没有结果。也就是说如果重复答复调查,依然会跳到默认的错误页面。问题出现在哪里?个人猜测是默认错误页面实现机理和Event Handler不一样,通俗一点就是:他们不是一个道上的。怎么办?难道没有办法了。有,但只能说是Workaround, 不是真正的解决方案。

    解决方案:

    首先把调查列表设置成“允许多次答复”,然后激活你的Event Handler的feature。ok,自定义的错误页面实现了。

    为什么说是一种折中的方案呢?因为错误页面发生在用户完成调查的表单,并且提交表单的过程中,而不是发生在用户点击“答复此调查”的过程中。

    努力不一定成功,但放弃一定失败!

    http://www.cnblogs.com/fanwenxuan/archive/2010/09/18/1830320.html

  • 相关阅读:
    [总结]学习目录
    PHP基础知识之————PDO预处理语句
    Main Thread Pinning
    Process/Thread Pinning Overview
    cpu三大架构 numa smp mpp
    NUMA(非一致性内存架构)
    Linux 的 NUMA 技术
    [安装] mac安装PHP7经历
    ThinkPHP5.X PHP5.6.27-nts + Apache 通过 URL 重写来隐藏入口文件 index.php
    laravel框架应用和composer扩展包开发
  • 原文地址:https://www.cnblogs.com/Areas/p/2278424.html
Copyright © 2011-2022 走看看