我想知道如何去做这件事。更改列表设置
我想更改列表的行为。当列表添加到SharePoint站点时,您可以在列表下方看到“添加新项目”。当用户添加新项目时,应将其替换为'编辑项目'
我该如何做到这一点?
非常感谢,
我想知道如何去做这件事。更改列表设置
我想更改列表的行为。当列表添加到SharePoint站点时,您可以在列表下方看到“添加新项目”。当用户添加新项目时,应将其替换为'编辑项目'
我该如何做到这一点?
非常感谢,
您可以创建一个Web部件,将改变列表的工具栏菜单中的菜单项。
在你的网络的一部分代码,改变CreateChildControl的代码:
protected override void CreateChildControls()
{
if (!_error)
{
try
{
foreach (Control control in this.Page.Controls)
{
ModifyMenu(control);
}
base.CreateChildControls();
}
catch (Exception ex)
{
HandleException(ex);
}
}
}
,然后添加一个ModifyMenu功能,将添加/隐藏你想要的菜单:
private void RemoveNewMenu(Control parentControl)
{
if ((parentControl == null) || (parentControl.Controls.Count == 0))
{
return;
}
foreach (Control childControl in parentControl.Controls)
{
if (childControl.ToString().ToUpper() == typeof(Microsoft.SharePoint.WebControls.NewMenu).ToString().ToUpper())
{
NewMenu newMenu = (NewMenu)childControl;
if (newMenu.GetMenuItem("NewFolder") != null)
{
newMenu.AddMenuItem(<Edit item menu that you want to add>);
newMenu.GetMenuItem(<new item menu that you want to Hide>).Visible = false;
}
break;
}
RemoveNewMenu(childControl);
}
}
非常感谢您的优秀回复。我的问题是这个Web部件将放置在哪里?在列表的同一页上?如果是的话,那么如何隐藏页面的web部件,并仍然实现功能。你可以扔任何指针? – Carpentar 2009-11-30 12:47:30
Web部件将与列表放置在同一页面上。如果将它的chrome类型设置为“none”,则根本看不到Web部件,因为它中没有控件。当你进入页面编辑模式时,你仍然会看到它,但我想这不会成为一个问题,因为你试图隐藏菜单的人可能没有足够的权限来编辑页面。 – 2009-11-30 15:34:50
创建一个CustomAction并将其部署为一项功能。自定义操作应该是一个应该在特定列表中可见的菜单项,它的操作url应该是链接到列表编辑窗体编辑窗体。
隐藏使用下面的开源项目,它允许您隐藏列表的工具栏中的任意一个菜单项的其他菜单选项:
查找工具栏管理器下载。
非常好,我甚至都没有意识到这个术语,直到你提到。我会研究一些更多的东西,看来这是正确的做法。我的问题是,如果我确实改变了行为,那么改变的范围是什么?我是指当前的网络还是整个网络?你可以通过一些一步一步说明这个CustomAction的例子来指出一些足智多谋的文章吗? 非常感谢您的时间和协助..我期待您的回复.. – Carpentar 2009-11-30 12:49:49
将尝试查找一些链接,但Google搜索+ CustomAction将为您带来很长的路要走。这些可以是Web范围的功能,并且在该功能中,您可以将定制分配给特定列表(甚至列表中的内容类型)。 CustomActions也可用于编辑站点操作菜单,以及列表项的上下文菜单。 – Colin 2009-11-30 16:46:48
您的列表将只有一个项目? – 2009-11-27 18:12:53
是的,只有一个项目存储到列表中。 – Carpentar 2009-11-30 12:09:24