觉得这篇文章比较有参考价值,把大意翻译过来,没有忠实于原文。

原文链接:http://blogs.msdn.com/sharepointdesigner/archive/2007/06/13/using-javascript-to-manipulate-a-list-form-field.aspx

为什么要这样做?
很多人抱怨经过SharePoint Designer设计的数据视图不够智能化,其中之一就是:SPD没有办法来设定字段的默认值,当然我们可以通过SharePoint中的WEB界面来设定某个列表中的字段的默认值,但是那样做的话,只能设置固定的值。比如我想设计一个表单,这个表单有一栏叫做“审批人”,系统根据用户在前一个页面的选择来产生的一个URL查询参数。
比如http://www.server.com/page.aspx?RequestName=RequestValue这样来设置“审批人”的值为RequestValue。

机制:
首先,
找到这个字段的HTML控件的ID,然后对这个控件进行设置。SharePoint对视图中的字段的渲染的特点如下表:


字段类型     ID属性中包括的字串 使用的HTML标记 Single Line of Text TextField input Multiple Lines of Text TextField input Number TextField input Currency TextField input Choice (dropdown) DropDownChoice select Lookup (single)* Lookup select Lookup (multiple) SelectCandidate; SelectResult select Yes/No BooleanField input

此外,最重要的是,字段的Title属性等于字段的“友好名称”,比如第一段提到的,“审批人”系统在渲染这个控件时,这个HTML的控件就TITLE就为“审批人”。
然后,再设置这个控件的值为URL查询参数的值。

特别:对于查阅项如果超过20个,那么Select标记会被系统内的INPUT标记包复,应先使用DropDown这个方法把包复的控件展开。

把文中的
<<QUERYSTRING VARIABLE NAME>> 换你传递的查询字串,
 <<FIELD DISPLAY NAME>>换成你字段的中英文名称就OK了。
然后 通过SPD把下面的代码插入你页面的HTML中去。

<script type="text/javascript">

 

// This javascript sets the default value of a lookup field identified 

// by <<FIELD DISPLAY NAME>> to the value stored in the querysting variable

// identified by <<QUERYSTRING VARIABLE NAME>>

 

 

// Customize this javascript by replacing <<FIELD DISPLAY NAME>> and 

// <<QUERYSTRING VARIABLE NAME>> with appropriate values.

// Then just paste it into NewForm.aspx inside PlaceHolderMain

 

_spBodyOnLoadFunctionNames.push("fillDefaultValues");

 

function fillDefaultValues() {

  var qs = location.search.substring(1, location.search.length);

  var args = qs.split("&");

  var vals = new Object();

  for (var i=0; i < args.length; i++) {

    var nameVal = args[i].split("=");

    var temp = unescape(nameVal[1]).split('+');

    nameVal[1] = temp.join(' ');

    vals[nameVal[0]] = nameVal[1];

  }  

  setLookupFromFieldName("<<FIELD DISPLAY NAME>>", vals["<<QUERYSTRING VARIABLE NAME>>"]);

}

 

function setLookupFromFieldName(fieldName, value) {

  if (value == undefined) return;

  var theSelect = getTagFromIdentifierAndTitle("select","Lookup",fieldName);

  

// if theSelect is null, it means that the target list has more than

// 20 items, and the Lookup is being rendered with an input element

  

  if (theSelect == null) 

    var theInput = getTagFromIdentifierAndTitle("input","",fieldName);

    ShowDropdown(theInput.id); //this function is provided by SharePoint 

    var opt=document.getElementById(theInput.opt);

    setSelectedOption(opt, value);

    OptLoseFocus(opt); //this function is provided by SharePoint 

  } else {

    setSelectedOption(theSelect, value);

  }

}

 

function setSelectedOption(select, value) {

  var opts = select.options;

  var l = opts.length;

  if (select == null) return;

  for (var i=0; i < l; i++) {

    if (opts[i].value == value) {

      select.selectedIndex = i;

      return true;

    }

  }

  return false;

}

 

function getTagFromIdentifierAndTitle(tagName, identifier, title) {

  var len = identifier.length;

  var tags = document.getElementsByTagName(tagName);

  for (var i=0; i < tags.length; i++) {

    var tempString = tags[i].id;

    if (tags[i].title == title && (identifier == "" || tempString.indexOf(identifier) == tempString.length - len)) {

      return tags[i];

    }

  }

  return null;

}

</script>

[译]使用JavaScript来操纵数据视图DataView新建视图的默认值相关推荐

  1. C#使用OleDB操作ACCESS插入数据时提示:参数 @p_Contract 没有默认值

    C#使用OleDB操作ACCESS插入数据时提示:参数 @p_Contract 没有默认值 OleDbParameter param = new OleDbParameter("" ...

  2. 下拉选数据查询过来的如何设置默认值为空_如何在某些情况下禁止提交Select下拉框中的默认值或者第一个值(默认选中的就是第一个值啦……)...

    群里有个帅哥问了这么个问题,他的下拉框刚进页面时是隐藏起来的,但是是有值的,为啥呢?因为下拉框默认选中了第一个值呗,,, 所以提交数据的时候就尴尬啦,明明没有选,但是还是有值滴.怎么办呢? 一开始看到 ...

  3. JavaScript中的函数中arguments、参数、默认值和表达式以及箭头函数

    箭头函数: 箭头函数虽然语法简洁.但也有很多场合不适用.箭头函数不能使用arguments.super和new.target,也不能用作构造函数.此外箭头函数也没有prototype属性. 1. 函数 ...

  4. select2 ajax获取数据设置默认值,初始值

    select2是一个非常好用的select美化插件,但是在最近使用时发现,select2在使用ajax获取数据内容时设置默认值非常麻烦,官方给出了一个解决方案就是添加一个属性selected的opti ...

  5. jsp select初始化赋值_分别在javascript和JSP中动态设置下拉列表默认值

    一.JavaScript中动态设置select标签中选项的默认值: 比如,要完成下边这个下拉列表的动态显示,并且当进行前后翻页时,下拉列表中的值自动更新为当前页码: 图1 jsp部分代码如下: 图2 ...

  6. php 使用dataview,echarts如何优化数据视图dataView中的样式(代码示例)

    本篇文章给大家带来的内容是关于echarts如何优化数据视图dataView中的样式(代码示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 在使用echart过程中,toolbo ...

  7. Javascript 处理二进制数据:JavaScript typed arrays

    原文中文链接:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Typed_arrays 原文英文链接:https://developer ...

  8. JavaScript与二进制数据的恩怨情仇

    文章出自个人博客https://knightyun.github.io/2020/03/09/js-binary-data,转载请申明 编程江湖,终日血雨腥风,论及二进制数据,又有多少豪杰谈笑风生,风 ...

  9. [译] 新一代 JavaScript 的开发图谱(2017)

    本文讲的是[译] 新一代 JavaScript 的开发图谱(2017), 原文地址:A Map To Modern JavaScript Development 原文作者:Santiago de Le ...

最新文章

  1. 12月18日云栖精选夜读 | Java 中创建对象的 5 种方式!...
  2. 开课吧python课程-Python教父廖雪峰加入开课吧 打造技术品类黄金内容班底
  3. Java程序练习-字符串插入
  4. Java OR Android
  5. 面试离职理由_面试一个月都没有成功,是种什么样的神奇体验?
  6. 从玉农业蔬菜标准化-林裕豪:致力食品安全和质量管理体系
  7. session过期情况下ajax请求不会触发重新登录的问题
  8. 阿里最后一面,高并发下如何设计一个秒杀系统?
  9. 华为HarmonyOS 2.0全面升级,构建中国软件的“根”!
  10. django mysql 修改密码_Django更改sqlite数据库使用mysql数据库 - 李金龙
  11. 一次失败的做题经历(HDU2112)
  12. 立即释放.net下的com组件
  13. 内存管理 —— ION
  14. 【路径规划】基于matlab A_star算法机器人走迷宫路径规划【含Matlab源码 1389期】
  15. dism 如备份服务器系统,还在用 Ghost?系统备份还原 DISM 超详细使用方法
  16. sp2 xp 英文版序列号_64位 Windows XP SP2 VOL+简体中文语言包+序列号
  17. java封装继承多态的理解_深入理解Java面向对象三大特性 封装 继承 多态
  18. 服务器虚拟化技术有kvm,只用VMware开虚拟机?来了解一下更强大KVM虚拟化技术
  19. 7.8 W 字总结!Java 8—Java 10 特性详解
  20. IOS – OpenGL ES 图像侵蚀边缘色彩模糊 GPUImageRGBErosionFilter

热门文章

  1. 只需2.5W功耗,就能达到5TOPS算力!地平线新一代AIoT芯片「旭日3」发布
  2. 华为VC首次出手:投资2家半导体公司,带火5G建材“碳化硅”
  3. 电力系统【第3章:简单电力系统的潮流分布计算】
  4. 再有人问你Java内存模型是什么,就把这篇文章发给他
  5. Fragment Injection漏洞杂谈
  6. 活动目录最佳实践分析器
  7. Nuget服务的搭建-打包-上传-删除
  8. “九头虫”病毒技术分析报告
  9. linux 文件权限的作用,Linux文件与目录权限的意义
  10. 计算机网络基础 — 网络设备 — 以太交换机(Switch)