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. ES6学习笔记(五)-函数扩展

  2. css常见的快捷开发代码汇总(长期更新)

    http://caibaojian.com/popular-css-snippets.html

  3. sublime text 3中browsersync的使用

    1.在项目所在位置右键选择Git Bash Here 2.输入 // --files 路径是相对于运行该命令的项目(目录) browser-sync start --server --files &q ...

  4. C语言——无向带权图邻接矩阵的建立

    #include <stdio.h> #include "Graph.h" #define MAX_INT 32767 /* #define vnum 20 #defi ...

  5. 5 使用ip代理池爬取糗事百科

    从09年读本科开始学计算机以来,一直在迷茫中度过,很想学些东西,做些事情,却往往陷进一些技术细节而蹉跎时光.直到最近几个月,才明白程序员的意义并不是要搞清楚所有代码细节,而是要有更宏高的方向,要有更专 ...

  6. MYSQL LOGBIN 数据日志恢复数据库随笔

    查看指定的二进制日志中的事件(MYSQL命令行) mysql> show binlog events in 'binlogfullpath'; 查看二进制日志中的事件(MYSQL命令行) mys ...

  7. spring boot(5)-properties参数配置

     application.properties application.properties是spring boot默认的配置文件,spring boot默认会在以下两个路径搜索并加载这个文件 s ...

  8. maven(13)-安装nexus私服

     环境 nexus最新3.x版需要java1.8,2.x版需要1.7以上.我之前一直用2.x,现在偿试在centos7和window10上分别安装nexus3.x,首先确保系统中已经配好了JDK1 ...

  9. org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/JJ]]

    1. 如果webapps下有同名的文件,会出现以上错误: 2.解决办法: 查看项目的目录结构是否正确,对于servlet项目,WEB-INF下应该有一个classes目录,存放编译好的.class文件 ...

  10. hibernate简单入门教程(一)---------基本配置

    应用级别所以很粗浅 首先介绍一下hibernate框架: 1.优秀的持久化(通俗讲把内存上的短时间运行信息存储在持久化硬盘上)框架. 2.作用于持久层,因为没什么侵入性,所以同样适用于其他层面上的存储 ...