列表Field属性的巧妙运用(隐藏栏)
原文链接:http://www.cnblogs.com/wanghao-3/archive/2007/11/05/949535.html
http://www.msotec.com/showtopic-916.aspx
SPD修改方法:
首先,打开要改页面的源文件,找到要改的栏ID。
如果是显示页面的栏ID比较短,如: SPFieldText;如果是新建或编辑页面的栏ID比较长,如:ctl00_ctl00_g_d43e2ae3_23c8_4cc3_ac81_912104dbd99f_ctl00_ctl04_ctl00_ctl00_ctl00_ctl04_ctl00_ctl00_TextField
然后,可以先用IE测试一下( ***的位置就填写ID):
javascript:alert(document.all. ***.parentElement.style.display='none')
如果在IE测试正确。用SPD打开页面,在加上就可以了。
<script>
document.all.***.parentElement.style.display='none';
</script>
这个方法还算管用,只是每隐藏一个栏都要写一行。
程序修改方法:
在实际的开发过程中,我们想在新建Item 的时候,想控制他的权限.不想要一些人,看到一些Field,在有权限的时候,又要看到的时候,又自动的显示, 上面讲述的是js调用..其实 moss本身就为我们考虑的很好,都给我们留下接口.我们只需要设置就可以。
SPSite site = new SPSite(@"http://wh/sites/ict/icts");
SPWeb web = site.OpenWeb();
SPList list = web.Lists["My Request"];
SPListItemCollection items = list.Items;
//新建的时候Room No field 看不到
list.Fields["Room No."].ShowInNewForm = false;
list.Fields["Room No."].Update();
//查看的时候,Room No. field 看不到
list.Fields["Room No."].ShowInDisplayForm = false;
list.Fields["Room No."].Update();
//编辑的时候,Room No. field看不到。
list.Fields["Room No."].ShowInEditForm = false;
list.Fields["Room No."].Update();