1,随着接触的项目越来越多,遇到的各种奇葩的问题也越来越多,不得不说,SharePoint是个好东西,提高了开发效率,简化了很多基础的功能。但是令人头疼的问题是,当你想做个稍微复杂点的功能,就不得不研究SharePoint内部是怎么实现这个东西的!有时候好几天都不一定搞定(当然我个人解决问题的能力较差)!

接触的比较多的项目的类型大多是项目管理系统,项目管理系统中的核心便是各种围绕着任务表和项目表展开的各种五花八门的功能。看似只有俩个列表,但其中的功能点也挺多的。记得前段时间做过一个施耐德的项目,测试时未发现的问题,被客户发现了。当时有个问题是Lookup类型的字段,当条目少了的时候,加载出来是个Select标签,但是当加载的条目多了的时候(具体加载多少没有查,十几条的样子),加载出来之后便不是select,而是一个Input标签,一个Img,还会动态生成一个Select标签。当时这个问题时别的同事解决的,也没注意。最近做Office365的项目又遇到了这个问题,离开了C#,用Js解决问题那个难受啊。经过慢慢的研究,慢慢的调式,算是解决了,不过不太完美。

2,先看一下条目少了的时候,加载出来就是个Select

2,当条目加载的多了的时候

3,本来微软自己搞的控件,我们不改动,不管是加载成什么,都可以保存。但是大多项目中,我们都需要在SharePoint基础上继续开发。这儿的前置工作项便是通过一个页面查询出来的。所以不得不将我们从其他页面传过来的值附在微软自己的控件里面,方便让微软替我们保存。本来以为将值弄到Input中就可以搞定的。可测试了一下,没保存住。随即开始了探索过程。

4,经历了不懈的探索过程(虽然成果不大,但我确实没少费劲),发现Input有个Choices属性,里面将所有前置任务的Id和Value用“|”拼接起来的。所以我的解决办法是先获得Input的Choices属性,并移除掉这个属性,在将我们需要的前置任务值得Id,Value用"|"拼接起来,再给Input添加上Choices属性,对应的值便是我们拼接的值。然后,还需要找到Img标签对应的Click()事件。调用俩次Click()事件。而且,第一次调用会报错(没找到为啥报错,大牛们继续努力)。所以页面一加载先调用一个这个方法。写在别的方法后面,不要影响别的方法执行。这样当选择前置任务再次调用点击事件时便可以将我们需要的值放到微软加载的控件中了。-----文采不好,比较啰嗦,请见谅

5,代码如下。页面加载时调用img点击事件的就自己写好了。

 //将前置任务的返回值赋值在Input中
function setmessages(dialogResult, returnvalue) {
if (dialogResult == "1") {
var arr = returnvalue.split('#');
$("#ParentTask").val(arr[0]);
var findparentcontrol=$("#findparentcontrol").find("select")
if(findparentcontrol.length>0)
{
$("#findparentcontrol option[value="+arr[1]+"]").attr("selected","selected");
}
var findparentinputcontrol=$("#findparentcontrol").find("input")
if(findparentinputcontrol.length>0)
{
$('#findparentcontrol :input').val(arr[0]);
var choice=arr[0]+'|'+arr[1];
var choices=$('#findparentcontrol :input').attr('choices');
$('#findparentcontrol :input').removeAttr('choices');
$('#findparentcontrol :input').attr('choices',choice);
$('#findparentcontrol img').click();
} }
}

尾话:自从知道了博客园过了好长时间才注册了账号,注册了账号又经过了好长时间才写博客,还是看过“霖雨”兄写的很多博客解决了我很多问题之后,慢慢的喜欢上了写博客,记录自己工作中遇到的难题。以便之后查询。另外也能帮助初学SharePoint的朋友解决一些简单的问题。博客园将见证我的一点一点的进步。希望和各位博客园的朋友共同努力,以后都是大牛!点击下面,求关注!

Office365学习笔记—Lookup类型加载条目过多解决方案的更多相关文章

  1. thinkphp学习笔记9—自动加载

    原文:thinkphp学习笔记9-自动加载 1.命名空间自动加载 在3.2版本中不需要手动加载类库文件,可以很方便的完成自动加载. 系统可以根据类的命名空间自动定位到类库文件,例如定义了一个类Org\ ...

  2. Spring学习笔记(1)——资源加载

    <!-- 占坑,迟点补充底层原理 --> Spring支持4种资源的地址前缀 (1)从类路径中加载资源——classpath: classpath:和classpath:/是等价的,都是相 ...

  3. node 学习笔记 - Modules 模块加载系统 (1)

    本文同步自我的个人博客:http://www.52cik.com/2015/12/11/learn-node-modules-path.html 用了这么久的 require,但却没有系统的学习过 n ...

  4. 【EF学习笔记08】----------加载关联表的数据 显式加载

    显式加载 讲解之前,先来看一下我们的数据库结构:班级表 学生表 加载从表集合类型 //显示加载 Console.WriteLine("=========查询集合===========&quo ...

  5. Openstack本学习笔记——Neutron-server服务加载和启动源代码分析(三)

    本文是在学习Openstack过程中整理和总结.因为时间和个人能力有限.错误之处在所难免,欢迎指正! 在Neutron-server服务载入与启动源代码分析(二)中搞定模块功能的扩展和载入.我们就回到 ...

  6. webpack学习笔记--按需加载

    为什么需要按需加载 随着互联网的发展,一个网页需要承载的功能越来越多. 对于采用单页应用作为前端架构的网站来说,会面临着一个网页需要加载的代码量很大的问题,因为许多功能都集中的做到了一个 HTML 里 ...

  7. node 学习笔记 - Modules 模块加载系统 (2)

    本文同步自我的个人博客:http://www.52cik.com/2015/12/14/learn-node-modules-module.html 上一篇讲了模块是如何被寻找到然后加载进来的,这篇则 ...

  8. 【EF学习笔记07】----------加载关联表的数据 贪婪加载

    讲解之前,先来看一下我们的数据库结构:班级表 学生表 贪婪加载 //贪婪加载 using (var db = new Entities()) { var classes = db.Classes.Wh ...

  9. 【EF学习笔记06】----------加载关联表的数据 延迟加载

    讲解之前,先来看一下我们的数据库结构:班级表 学生表 延迟加载 //延迟加载 using (var db = new Entities()) { //查询班级 var classes = (from ...

随机推荐

  1. SJ定理——省选前的学习2

    ——博弈论?上SG定理!什么?不行?那就SJ定理吧. 原来还有这么个玩意... bzoj1022. 大意是Nim取石子游戏中取到最后一个石子就算输,即无法取了就获胜(原版是无法取了就输). 我们试图套 ...

  2. svn add @2x image 文件

    svn add `svn status . | grep "^?" | awk '{print $2"@"}'`

  3. RHEL5.X 重启网卡出现./network-functions: line 78: .: ifcfg-eth0: file not found

    错误信息: 红帽RHEL5.5系统,重启网卡报错 [root@localhost network-scripts]# service network restart Shutting down int ...

  4. Binary Tree Inorder/Preorder Traversal 返回中序和前序/遍历二叉树的元素集合

    给定一个二叉树,以集合方式返回其中序/先序方式遍历的所有元素. 有两种方法,一种是经典的中序/先序方式的经典递归方式,另一种可以结合栈来实现非递归 Given a binary tree, retur ...

  5. redis安装、配置、启停

    Redis is an open source (BSD licensed), in-memory data structure store, used as database, cache and ...

  6. MySQL两个表联合查询并按时间排序

    有一张资金记录表,一张金币记录表,想以时间为单位,降序合并排列他们之间的信息,查询SQL如下: select * from (select * from t_money_logs union sele ...

  7. 毕向东_Java基础视频教程第20天_IO流(7~10)

    第20天-07-IO流(递归) package bxd; import java.io.File; public class FileDemo3 { // 非递归打印 public static vo ...

  8. MySQL复制报错(Slave failed to initialize relay log info structure from the repository)

    机器重启以后,主从出现了问题,具体报错信息: Slave failed to initialize relay log info structure from the repository 解决方案: ...

  9. Oracle 数据库实现数据更新:update、merge

    工作中遇到的数据更新,学习记录. 1.使用update进行数据更新 1)最简单的更新 update tablea a set a.price=1.00 2)带条件的数据更新 update tablea ...

  10. January 02 2017 Week 1st Monday

    A day is a miniature of eternity. 一天是永恒的缩影. My life is short, but I can make something eternal. What ...