2009-11-27 87 views
0

我想知道如何去做这件事。更改列表设置

我想更改列表的行为。当列表添加到SharePoint站点时,您可以在列表下方看到“添加新项目”。当用户添加新项目时,应将其替换为'编辑项目'

我该如何做到这一点?

非常感谢,

+0

您的列表将只有一个项目? – 2009-11-27 18:12:53

+0

是的,只有一个项目存储到列表中。 – Carpentar 2009-11-30 12:09:24

回答

0

您可以创建一个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); 
     } 
    } 
+0

非常感谢您的优秀回复。我的问题是这个Web部件将放置在哪里?在列表的同一页上?如果是的话,那么如何隐藏页面的web部件,并仍然实现功能。你可以扔任何指针? – Carpentar 2009-11-30 12:47:30

+0

Web部件将与列表放置在同一页面上。如果将它的chrome类型设置为“none”,则根本看不到Web部件,因为它中没有控件。当你进入页面编辑模式时,你仍然会看到它,但我想这不会成为一个问题,因为你试图隐藏菜单的人可能没有足够的权限来编辑页面。 – 2009-11-30 15:34:50

0

创建一个CustomAction并将其部署为一项功能。自定义操作应该是一个应该在特定列表中可见的菜单项,它的操作url应该是链接到列表编辑窗体编辑窗体。

隐藏使用下面的开源项目,它允许您隐藏列表的工具栏中的任意一个菜单项的其他菜单选项:

SharePoint features

查找工具栏管理器下载。

+0

非常好,我甚至都没有意识到这个术语,直到你提到。我会研究一些更多的东西,看来这是正确的做法。我的问题是,如果我确实改变了行为,那么改变的范围是什么?我是指当前的网络还是整个网络?你可以通过一些一步一步说明这个CustomAction的例子来指出一些足智多谋的文章吗? 非常感谢您的时间和协助..我期待您的回复.. – Carpentar 2009-11-30 12:49:49

+0

将尝试查找一些链接,但Google搜索+ CustomAction将为您带来很长的路要走。这些可以是Web范围的功能,并且在该功能中,您可以将定制分配给特定列表(甚至列表中的内容类型)。 CustomActions也可用于编辑站点操作菜单,以及列表项的上下文菜单。 – Colin 2009-11-30 16:46:48