Office365学习笔记—Lookup类型加载条目过多解决方案
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类型加载条目过多解决方案的更多相关文章
- thinkphp学习笔记9—自动加载
原文:thinkphp学习笔记9-自动加载 1.命名空间自动加载 在3.2版本中不需要手动加载类库文件,可以很方便的完成自动加载. 系统可以根据类的命名空间自动定位到类库文件,例如定义了一个类Org\ ...
- Spring学习笔记(1)——资源加载
<!-- 占坑,迟点补充底层原理 --> Spring支持4种资源的地址前缀 (1)从类路径中加载资源——classpath: classpath:和classpath:/是等价的,都是相 ...
- node 学习笔记 - Modules 模块加载系统 (1)
本文同步自我的个人博客:http://www.52cik.com/2015/12/11/learn-node-modules-path.html 用了这么久的 require,但却没有系统的学习过 n ...
- 【EF学习笔记08】----------加载关联表的数据 显式加载
显式加载 讲解之前,先来看一下我们的数据库结构:班级表 学生表 加载从表集合类型 //显示加载 Console.WriteLine("=========查询集合===========&quo ...
- Openstack本学习笔记——Neutron-server服务加载和启动源代码分析(三)
本文是在学习Openstack过程中整理和总结.因为时间和个人能力有限.错误之处在所难免,欢迎指正! 在Neutron-server服务载入与启动源代码分析(二)中搞定模块功能的扩展和载入.我们就回到 ...
- webpack学习笔记--按需加载
为什么需要按需加载 随着互联网的发展,一个网页需要承载的功能越来越多. 对于采用单页应用作为前端架构的网站来说,会面临着一个网页需要加载的代码量很大的问题,因为许多功能都集中的做到了一个 HTML 里 ...
- node 学习笔记 - Modules 模块加载系统 (2)
本文同步自我的个人博客:http://www.52cik.com/2015/12/14/learn-node-modules-module.html 上一篇讲了模块是如何被寻找到然后加载进来的,这篇则 ...
- 【EF学习笔记07】----------加载关联表的数据 贪婪加载
讲解之前,先来看一下我们的数据库结构:班级表 学生表 贪婪加载 //贪婪加载 using (var db = new Entities()) { var classes = db.Classes.Wh ...
- 【EF学习笔记06】----------加载关联表的数据 延迟加载
讲解之前,先来看一下我们的数据库结构:班级表 学生表 延迟加载 //延迟加载 using (var db = new Entities()) { //查询班级 var classes = (from ...
随机推荐
- html和css入门 (一)
HTML简介 什么是HTML HTML 的全称为 超文本标记语言(Hyper Text Markup Language),这种语言给我们提供一种建立结构性文档的方法.通过表示结构性的标签语法,我们可以 ...
- 《CSS3揭秘》上(边框,投影,渐变,条纹效果,蚂蚁行军)
最近看了<CSS3揭秘>一书,里面真的是干货满满呀,现将常用到的一些技巧归纳总结,便于日后用到查找.不得不感叹学无止境哦~ 1.边框与背景 半透明边框 .demo{ background- ...
- C++多线程编程(★入门经典实例★)
原文:http://www.cnblogs.com/codingmengmeng/p/5913068.html 多线程在编程中有相当重要的地位,我们在实际开发时或者找工作面试时总能遇到多线程的问题,对 ...
- D3 JS study notes
如何使用d3来解析自定义格式的数据源? var psv = d3.dsvFormat("|"); // This parser can parse pipe-delimited t ...
- webbench 网站压力测试
[root@localhost ~]# webbench -c 500 -t 4 http://172.24.61.41/Webbench - Simple Web Benchmark 1.5Copy ...
- EXP-00032: Non-DBAs may not export other users
Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit ProductionWith the P ...
- js获取鼠标坐标位置兼容多个浏览器
这个是IE 11 下兼容下视图测试时可用. $(window).bind('beforeunload', function (event) { var _this = this; var x = ev ...
- [T-ARA][SEXY LOVE]
歌词来源:http://music.163.com/#/song?id=22704402 作曲 : 新沙洞老虎/崔圭成 [作曲 : 新沙洞老虎/崔圭成] [作曲 : 新沙洞老虎/崔圭成] 作词 : 新 ...
- 【Try Kotlin】Kotlin Koans 代码笔记
Kotlin Koans 心印 Introduction 1.Hello, world! Simple Functions Take a look at function syntax and mak ...
- Python安装Windows的pip包
1.到https://www.python.org/downloads/ 下载python包安装python 2.到https://pypi.python.org/pypi/pip#downloads ...