在SharePoint中,经常需要根据其他列的值来显示或隐藏某些列。这可以通过服务器端和客户端两种方式实现。服务器端需要编写WebPart并将其添加到列表的新表单中,关闭默认表单。这样,可以完全控制控件和生命周期。但部署和维护代码可能会比较麻烦。好处是有完全的控制权,并且可以灵活地实现任何类型的验证。
客户端可以通过JavaScript实现,特别是使用jQuery。非常喜欢jQuery,并将使用第二种选项在本文中实现它。
首先,需要编辑新表单并添加一个内容编辑器WebPart(CEWP)到表单中。接下来,需要将WebPart的chrome状态更改为none,这样用户就看不到WebPart的标题,它应该是对最终用户不可见的。
然后,在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并将其添加到列表的新表单中,关闭默认表单。这样,可以完全控制控件和生命周期。但部署和维护代码可能会比较麻烦。好处是有完全的控制权,并且可以灵活地实现任何类型的验证。
服务器端实现的步骤如下:
服务器端实现的优点是有完全的控制权,并且可以灵活地实现任何类型的验证。但部署和维护代码可能会比较麻烦。
客户端可以通过JavaScript实现,特别是使用jQuery。非常喜欢jQuery,并将使用第二种选项在本文中实现它。客户端实现的步骤如下: