zoukankan      html  css  js  c++  java
  • SharePoint上禁用列表编辑(下)

    这篇文章接着讲述其他几种禁用列表编辑的方法,首先还是将前面的步骤都复制过来。

    这里以2007为例,在2010中可以也可以使用此方法,首先我在网站集上建立一个列表TestList,它有三列,分别为“标题”,“TestField”和“ReadOnlyField”,如下:

    现在我需要禁止任何人编辑“TestField”列,怎么做呢?首先我用SPD 2007打开TestList列表:

    然后找到EditForm.aspx,将其在IE中打开,然后右键选择“查看源文件”,就会弹出一个记事本文本文件,如果要确定自己打开的是不是EditForm.aspx的源文件,就在文本中搜索一下,看看能不能找到如下一段:

    1 <form name="aspnetForm" method="post" action="EditForm.aspx" onsubmit="javascript:return WebForm_OnSubmit();" id="aspnetForm">

    如果可以找到,那就证明你找对了,然后在此文本当中找到如下一段:

    1 <TD valign="top" class="ms-formbody" width="400px">
    2 <!-- FieldName="TestField"
    3 FieldInternalName="TestField"
    4 FieldType="SPFieldText"
    5 -->
    6 <span dir="none">
    7 <input name="ctl00$ctl12$g_cff13d4c_763d_4317_a25d_69f6d6d97853$ctl00$ctl04$ctl01$ctl00$ctl00$ctl04$ctl00$ctl00$TextField" type="text" value="TestField 字段值。" maxlength="255" id="ctl00_ctl12_g_cff13d4c_763d_4317_a25d_69f6d6d97853_ctl00_ctl04_ctl01_ctl00_ctl00_ctl04_ctl00_ctl00_TextField" title="TestField" class="ms-long" />

    这里的name属性就是TestField的name,然后我们就可以使用javascript来禁用这个字段的编辑,在SPD 2007中将EditForm.aspx签出,编辑,在<WebPartPages:WebPartZone><ZoneTemplate>…</ZoneTemplate></WebPartPages:WebPartZone>后加入如下Script语句:

    1 <script type="text/javascript">
    2 function ReadOnly() {
    3 document.getElementById("ctl00_ctl12_g_cff13d4c_763d_4317_a25d_69f6d6d97853_ctl00_ctl04_ctl01_ctl00_ctl00_ctl04_ctl00_ctl00_TextField").readOnly=true;
    4 }
    5 _spBodyOnLoadFunctionNames.push("ReadOnly()");
    6 </script>

    现在我添加一条项目,然后在编辑页面查看,TestField确实不让我编辑了,不过显示起来就没有之前第一种方法灰度的效果,这个就不放图片了。

    另外还有一种方式是采用遍历所有TextField的方法,通过Field的Type和Title属性来找到那个相应的Field,然后设置其readOnly属性为true,具体JS代码如下:

     1 <script type ="text/javascript">
    2 function SetReadOnly() {
    3 var elements=document.body.getElementsByTagName("INPUT");
    4 for (index=0; index < elements.length;++index) {
    5 if(elements[index].type=="text") {
    6 if(elements[index].title=="TestField") {
    7 elements[index].readOnly=true;
    8 }
    9 }
    10 }
    11 }
    12 _spBodyOnLoadFunctionNames.push("SetReadOnly()");
    13 </script>

    虽说这些方法在2010种都可以使用,但是还有一种方法,是我在SharePoint 2010中用的,都不用写JS,更加容易,改天抽时间把它写出来做个笔记。不知不觉又到了11点半!~

  • 相关阅读:
    使用a标签制作tooltips
    使用editorconfig配置你的编辑器
    JointJS绘制流程图
    用highcharts展现你的数据
    css段落首字母下沉
    sklearn框架的系统学习
    numpy删除二维数据矩阵的行和列
    sklearn中机器学习算法评价指标
    sklearn调用逻辑回归算法
    sklearn调用多项式回归
  • 原文地址:https://www.cnblogs.com/leolis/p/2139976.html
Copyright © 2011-2022 走看看