基于其他值动态显示或隐藏列

SharePoint中,经常需要根据其他列的值来显示或隐藏某些列。这可以通过服务器端和客户端两种方式实现。服务器端需要编写WebPart并将其添加到列表的新表单中,关闭默认表单。这样,可以完全控制控件和生命周期。但部署和维护代码可能会比较麻烦。好处是有完全的控制权,并且可以灵活地实现任何类型的验证。

客户端可以通过JavaScript实现,特别是使用jQuery。非常喜欢jQuery,并将使用第二种选项在本文中实现它。

编辑新表单并添加CEWP到表单中

首先,需要编辑新表单并添加一个内容编辑器WebPart(CEWP)到表单中。接下来,需要将WebPart的chrome状态更改为none,这样用户就看不到WebPart的标题,它应该是对最终用户不可见的。

在CEWP的HTML视图中添加以下代码片段

然后,在CEWP的HTML视图中添加以下代码片段。根据自定义列表中的列,更改HideColumn函数的参数。

<script src="http://ajax.aspnetcdn.com/ajax/jquery/jquery-1.5.js"></script> <script type="text/javascript"> function HideColumn(targetColumn, hideColumn) { var columnObj = $( "input[Title='"+ hideColumn + "']" ); $( "input[Title='"+ targetColumn + "']" ).bind( 'click', function() { if( $(this).is( ':checked' )) { columnObj.closest( "tr" ).hide(); } else { columnObj.closest( "tr" ).show(); } }); } $(document).ready(function() { HideColumn('YourCheckboxcolumn', 'columntobehidden'); }); </script>

就是这样!尝试向列表中添加一个新项,根据列值,其他列将在代码中被隐藏。在这里使用了复选框和文本字段。根据复选框,决定是否显示或隐藏列。

服务器端实现

服务器端实现需要编写WebPart并将其添加到列表的新表单中,关闭默认表单。这样,可以完全控制控件和生命周期。但部署和维护代码可能会比较麻烦。好处是有完全的控制权,并且可以灵活地实现任何类型的验证。

服务器端实现的步骤如下:

  1. 编写WebPart
  2. 将WebPart添加到列表的新表单中
  3. 关闭默认表单

服务器端实现的优点是有完全的控制权,并且可以灵活地实现任何类型的验证。但部署和维护代码可能会比较麻烦。

客户端实现

客户端可以通过JavaScript实现,特别是使用jQuery。非常喜欢jQuery,并将使用第二种选项在本文中实现它。客户端实现的步骤如下:

  1. 编辑新表单并添加一个内容编辑器WebPart(CEWP)到表单中
  2. 将WebPart的chrome状态更改为none,这样用户就看不到WebPart的标题,它应该是对最终用户不可见的
  3. 在CEWP的HTML视图中添加代码片段
  4. 根据自定义列表中的列,更改HideColumn函数的参数
沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485