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. css实现中间文字,两边横线效果

    1. vertical-align属性实现效果: vertical-align 属性设置元素的垂直对齐方式. 该属性定义行内元素的基线相对于该元素所在行的基线的垂直对齐.允许指定负长度值和百分比值. ...

  2. BZOJP1096[ZJOI2007]仓库建设——solution

    Description L公司有N个工厂,由高到底分布在一座山上.如图所示,工厂1在山顶,工厂N在山脚.由于这座山处于高原内陆地区(干燥少雨),L公司一般把产品直接堆放在露天,以节省费用.突然有一天, ...

  3. 51Nod 算法马拉松23 开黑记

    惨啊……虽然开了半天黑,但是还是被dalao们踩了…… 第二次开黑,还是被卡在rank20了,我好菜啊……= = 写一写比赛经过吧…… 看到题之后习惯性都打开,A~D看上去似乎并没有什么思路,F应该是 ...

  4. jQuery的attr()与prop()的区别

    jQuery的attr()与prop()都是用于获取与设置属性的,但它们又各有不同. attr()一般是用于设置默认值,prop()一般是用于设置属性值,即对于像“diabled”,"che ...

  5. 如何让转换的视频支持HTML5在线播放

    转换工具当然是ffmpeg了,那么如何让转换后的视频支持所有支持HTML5的浏览器在线播放?只需要如下命令行代码就行了: ffmpeg -i output.mpg -vcodec libx264 -a ...

  6. latex 图形的放置

         Next: 16.3 清除未处理的浮动图形 Up: 16. 浮动图形环境 Previous: 16.1 创建浮动图形  16.2 图形的放置 图形(figure)环境有一个可选参数项允许用户 ...

  7. volley6--CacheDispatcher从缓存中获取数据

    源码: /* * Copyright (C) 2011 The Android Open Source Project * * Licensed under the Apache License, V ...

  8. python 待关注库

    Python待关注库 GUI 图形 Tkinter/wxPython/PyGTK/PyQt/PySide Web框架 django/web2py/flask/bottle/tornadoweb/web ...

  9. java笔记--局部内部类认识与理解

    java内部类 内部类应用最多的场景是在编写GUI程序时,将大量的事件监听处理放在了内部类中进行 --如果朋友您想转载本文章请注明转载地址"http://www.cnblogs.com/XH ...

  10. 使用元数据简化jdbc代码---查询操作(用到反射)

    使用元数据简化jdbc代码---查询操作(用到反射) 一  思路分析 简化就是把共同的地方提取出来并放到一个方法里,在用到时只要调用就ok了,上一篇介绍了更新的操作,而查询的操作相对来说比较复杂,因为 ...