如何定制列表项编辑页面

简介:

经常有人问我“如何禁止用户修改某某字段?”之类的问题。通常这一类的问题会牵涉到对列表项编辑页面的修改。

其实简单来说,如果你熟悉SharePoint开发,解决上面所说的这个问题就非常简单了。因为SPField有一个ShowInEditForm的属性,你只需要这样:

SPField titleField = item.Fields["Title"];
titleField.ShowInEditForm = false;


但如果你不想用这样的方法,或者想了解更多对列表项编辑页面的定制,那就继续看下去。

对列表项编辑页面最常见,也最方便的定制方法,就是使用SharePoint Designer打开这个页面直接进行修改。通常,通过往这个页面上添加相应的JavaScript脚本,就可以完成我们需要的效果。
 

 

比如下面的这个任务列表项的编辑页面,我们希望,它能够隐藏“标题”字段,同时,自动将“截止日期”所对应的文本框中的值设置为2008/1/1(是的,我知道要做到这个只需要更改字段默认值,但这不是重点...)。
 

 

<script type="text/javascript" language="javascript">

// 搜索对应到每个字段的文本输入框
function searchFieldEditorElement(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;
}

// 搜索对应到每个字段的“<TR>”标签
function searchParentTR(element)
{
    var parentElement = element.parentElement;
    if (parentElement == null)
    {
        return element;
    }
    if (parentElement.tagName.toLowerCase() == "tr")
    {
        return parentElement;
    }
    return searchParentTR(parentElement);
}

function setFieldControls()
{
    // 将“标题”字段所对应的行隐藏起来
    var txtTitle = searchFieldEditorElement("input", "TextField", "标题");
    if (txtTitle != null)
    {
        var parentTr = searchParentTR(txtTitle);
        parentTr.style.display = "none";
    }

    // 将“截止日期”字段所对应的文本框的值设置成“2008/1/1”
    var txtEndDate = searchFieldEditorElement("input", "DateTimeFieldDate", "截止日期");
    if (txtEndDate != null)
    {
        txtEndDate .value = "2008/1/1";
    }
}

// 指定在页面载入后运行指定的JS函数
_spBodyOnLoadFunctionNames.push("setFieldControls");

</script>

 

 

通过灵活使用JavaScript,基本上我们可以实现我们所需要的大部分效果。





本文转自 kaneb0y 51CTO博客,原文链接:http://blog.51cto.com/kaneboy/280791,如需转载请自行联系原作者
目录
相关文章
Navicate如何全部选中表,点击表,然后移动到右侧,右侧可以选中,实现拖拽
Navicate如何全部选中表,点击表,然后移动到右侧,右侧可以选中,实现拖拽
|
7月前
|
前端开发
如何为树形菜单项添加图标?
如何为树形菜单项添加图标?
【分享】宜搭子表单点击新增自动展开最后一项,折叠前面所有项.
宜搭子表单点击新增自动展开最后一项,折叠前面所有项. by 页一
769 0
|
小程序 JavaScript 数据库
小程序分类页实现三级分类,顶部导航栏,左侧分类栏,右侧数据列表
小程序分类页实现三级分类,顶部导航栏,左侧分类栏,右侧数据列表
217 0
|
前端开发
列表和详情显示
列表和详情显示
125 0
|
存储 消息中间件 缓存
关于字典项(下拉列表)在前后端的实践思考
最近接触了一点公司的后端代码,刚好自己有非常多的疑问,带着这些疑问,我就来看看公司后端的代码是如何实现的。由于工作中表单的录入工作相对频繁,而且有非常多的下拉选项,所以就先来看看字典项目的获取。
526 0
|
C++
新建项无资源字典类型
新建项无资源字典类型
127 0
新建项无资源字典类型
|
DataWorks
PAI创建工作空间提示名称已经存在
检查了已经创建的工作空间后,发现名称未使用,但是依然提示名称已存在。或者希望创建与dataworks名称一样的工作空间时无法创建。
283 0
PAI创建工作空间提示名称已经存在
SwiftUI—点击列表不同的选项进入不同的详情页面
SwiftUI—点击列表不同的选项进入不同的详情页面
257 0
SwiftUI—点击列表不同的选项进入不同的详情页面
|
JavaScript
使用jQuery 中的显示与隐藏动画效果实现折叠下拉菜单的收缩和展开,在页面的列表中有若干项,列表的每项中有一个二级列表,二级列表默认为隐藏状态。点击列表的项,切换二级列表的显示或隐藏状态
使用jQuery 中的显示与隐藏动画效果实现折叠下拉菜单的收缩和展开,在页面的列表中有若干项,列表的每项中有一个二级列表,二级列表默认为隐藏状态。点击列表的项,切换二级列表的显示或隐藏状态
439 0
使用jQuery 中的显示与隐藏动画效果实现折叠下拉菜单的收缩和展开,在页面的列表中有若干项,列表的每项中有一个二级列表,二级列表默认为隐藏状态。点击列表的项,切换二级列表的显示或隐藏状态