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 ...
随机推荐
- js中常用的算法排序
在工作中都会经常用到的一些基础算法,可以很快解决问题.这些都是在工作中总结的,希望可以帮助到大家. 一.数组乱序 arr.sort(function randomsort(a, b) { return ...
- js原生日历
突然发现日期对象可以进行 加减 , 利用这个特性写了一个可以说是对只要会JavaScript 的就可以写的日历:没有各种算法,只有一些逻辑相信只要懂javascript就差不多看俩眼就会的日历. & ...
- Vue.js学习(常用指令)
Vue.js的指令是以v-开头,它们用于HTML元素,指令提供了一些特殊的特性,将指令绑定在元素上时,指令会为绑定的目标元素添加一些特殊的行为,我们可以将指令看作特殊的HTML特性. 本文参考:htt ...
- 浏览器根对象window之值为字符串的属性
1. string属性 1.1 origin window.origin使用返回的是当前网页的网址.打开百度首页,并在控制台中输入 window.origin 控制台中会输出"https:/ ...
- 解决API中无法使用session问题
处理API无法使用session的方法,贴图: 1调用如下图 2.需要在Global.asax文件中配置一些东西 protected void Application_PostAuthorizeReq ...
- Install dotNet Core on Mac
1. 按照官方页面进行安装 https://www.microsoft.com/net/core#macos 2. 在运行"brew link --force openssl" 时 ...
- redis在windows上安装+RedisDesktopManager
redis我就不在这里介绍了,这里直接介绍windows安装redis服务,网上有很多介绍windows版,我这边安装的是一个极简版的. redis官方下载地址:https://redis.io/do ...
- 机器学习入门KNN近邻算法(一)
1 机器学习处理流程: 2 机器学习分类: 有监督学习 主要用于决策支持,它利用有标识的历史数据进行训练,以实现对新数据的表示的预测 1 分类 分类计数预测的数据对象是离散的.如短信是否为垃圾短信,用 ...
- 使用FontAwesome
使用FontAwesome https://github.com/PrideChung/FontAwesomeKit 为什么要使用FontAwesome呢,其实,它的字体就是矢量图,无论是放大还是缩小 ...
- ORACLE 数据找回
-- 找回一个小时前的数据 select * from sys_system_dictionary as of timestamp sysdate - 1/24order by id AS OF TI ...