转:http://vickynuli.blog.163.com/blog/static/180438492201281434249486/

在网上找到篇文章,自定义快速启动栏和顶部链接栏,以下为代码,根据文章的思路,需要两个方法(个人觉得这两个方法很蠢),首先在页面上放两个treeview 和四个文本框,两个按钮(一个是对顶部链接栏有效,另一个是对快速启动栏有效),
首先咱们在load事件里面把快速启动栏和顶部链接栏分别在TreeView下面显示。

using System;
using Microsoft.SharePoint;
using Microsoft.SharePoint.WebControls;
using Microsoft.SharePoint.Navigation;
using System.Web.UI.WebControls;

namespace spInfo.Layouts
{
    public partial class secondaryDirectory : LayoutsPageBase
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                SPWeb web = SPContext.Current.Web;
                SPNavigationNodeCollection topNav = web.Navigation.TopNavigationBar;
                SPNavigationNodeCollection qucikNav = web.Navigation.QuickLaunch;

                topNavTreeView.Nodes.Add(new TreeNode("Top Link Bar Links"));
                quickLaunchTreeView.Nodes.Add(new TreeNode("Quick Launch Links"));

                RecurseNodes(topNav, topNavTreeView.Nodes[0].ChildNodes);
                RecurseNodes(qucikNav, quickLaunchTreeView.Nodes[0].ChildNodes);
 
                topNavTreeView.ExpandAll();
                quickLaunchTreeView.ExpandAll();
            }
        }
/// <summary>
        /// 把主导航值传进来,树视图显示
        /// </summary>
        /// <param name="nodes">导航</param>
        /// <param name="treeNodes">树</param>
        private void RecurseNodes(SPNavigationNodeCollection nodes, TreeNodeCollection treeNodes)
        {
            foreach (SPNavigationNode node in nodes)
            {
                TreeNode treeNode = new TreeNode();
                treeNode.Text = node.Title;

                treeNode.ToolTip = node.Url;
                treeNode.ShowCheckBox = true;
                treeNode.Checked = node.IsExternal;
                treeNode.Value = node.Id.ToString();

                treeNodes.Add(treeNode);
                RecurseNodes(node.Children, treeNode.ChildNodes);
            }
        }
/// <summary>
 /// 顶部链接栏 
 /// </summary>
  /// <param name="sender"></param> 
  /// <param name="e"></param>
        protected void addTopButton_Click(object sender, EventArgs e)
        {
            //string vaaa = "";
            //foreach (TreeNode n in topNavTreeView.CheckedNodes)
            //{
            //    vaaa += n.Value + ",";
            //}
            SPWeb web = SPContext.Current.Web;
            SPNavigationNode node = new SPNavigationNode(topNavTitleTextBox.Text, topNavUrlTextBox.Text, topNavIsExternalCheckBox.Checked);
            if (topNavTreeView.SelectedNode == topNavTreeView.Nodes[0])
            {
                web.Navigation.TopNavigationBar.AddAsLast(node);
            }
            else
            {
                int parentId = 0;
                foreach (TreeNode n in topNavTreeView.CheckedNodes)
                {
                    parentId += Convert.ToInt32(n.Value);
                }
                //parentId = int.Parse(topNavTreeView.SelectedNode.Value);
                web.Navigation.GetNodeById(parentId).Children.AddAsLast(node);
            }

            if (topNavOpenInNewWindowCheckBox.Checked)
            {
                node.Properties["Target"] = "_blank";
                node.Update();
            }
            topNavTreeView.ExpandAll();
            quickLaunchTreeView.ExpandAll();
        }
 /// <summary>
 /// 快速启动链接栏 
 /// </summary>
 
/// <param name="sender"></param> 
 
/// <param name="e"></param>
        protected void btnQuick_Click(object sender, EventArgs e)
        {
            SPWeb web = SPContext.Current.Web;
            SPNavigationNode node = new SPNavigationNode(tbQTitle.Text, tbQUrl.Text, CheckBox3.Checked);
            if (quickLaunchTreeView.SelectedNode == quickLaunchTreeView.Nodes[0])
            {
                web.Navigation.QuickLaunch.AddAsLast(node);
            }
            else
            {
                int parentId = 0;
                foreach (TreeNode n in quickLaunchTreeView.CheckedNodes)
                {
                    parentId += Convert.ToInt32(n.Value);
                }
                //parentId = int.Parse(topNavTreeView.SelectedNode.Value);
                web.Navigation.GetNodeById(parentId).Children.AddAsLast(node);
            }

            if (CheckBox4.Checked)
            {
                node.Properties["Target"] = "_blank";
                node.Update();
            }
            topNavTreeView.ExpandAll();
            quickLaunchTreeView.ExpandAll();
        }
    }
}

                          
HTML代码(比较难看)
<asp:Content ID="Main" ContentPlaceHolderID="PlaceHolderMain" runat="server">
<div id="mdA">
        <table width="400" border="0" cellspacing="0" cellpadding="0">
            <tr>
                <td rowspan="6">
                    <asp:TreeView ID="topNavTreeView" ons runat="server">
                    </asp:TreeView>
                </td>
                <td>
                    Title:<asp:TextBox ID="topNavTitleTextBox" runat="server"></asp:TextBox></td>
            </tr>
            <tr>
                <td>
                Url:<asp:TextBox ID="topNavUrlTextBox" runat="server"></asp:TextBox>
                </td>
            </tr>
            <tr>
                <td>
                    <asp:CheckBox ID="topNavIsExternalCheckBox" runat="server" Text="链接" 
                        />
                </td>
            </tr>
            <tr>
                <td><asp:CheckBox ID="topNavOpenInNewWindowCheckBox" runat="server" Text="在新窗口打开" 
                        />
                </td>
            </tr>
            <tr>
                <td>
                    <asp:Button ID="addTopButton" runat="server" onclick="addTopButton_Click" Text="添加到节点" />
                </td>
            </tr>
            <tr>
                <td>
                </td>
            </tr>
            <tr>
                <td rowspan="6">
                    <asp:TreeView ID="quickLaunchTreeView" runat="server">
                    </asp:TreeView>
                </td>
                <td> Title:<asp:TextBox ID="tbQTitle" runat="server"></asp:TextBox>
                </td>
            </tr>
            <tr>
                <td> Url:<asp:TextBox ID="tbQUrl" runat="server"></asp:TextBox>
                </td>
            </tr>
            <tr>
                <td><asp:CheckBox ID="CheckBox3" runat="server" Text="链接" 
                        />
                </td>
            </tr>
            <tr>
                <td><asp:CheckBox ID="CheckBox4" runat="server" Text="在新窗口打开" 
                        />
                </td>
            </tr>
            <tr>
                <td>
                    <asp:Button ID="btnQuick" runat="server" onclick="btnQuick_Click" Text="添加到快速启动栏" />
                </td>
            </tr>
            <tr>
                <td>
                </td>
            </tr>
        </table>
    </div>
</asp:Content>

自定义 SharePoint 2010 快速启动栏和顶部链接栏的更多相关文章

  1. 根据权限显示隐藏SharePoint 2010快速启动栏的链接

    转:http://www.360sps.com/Item/ShowAndHiddenLink.aspx 在SharePoint 2010的快速启动栏中可以根据权限来显示或隐藏列表.库.网站的链接,如果 ...

  2. LXPanel自定义添加应用程序到快速启动栏

    LXPanel是Linux下LXDE项目的一个桌面面板软件.我一开始接触的时候,对于自己自定义的程序到快速启动栏绕了很多弯路,这里记录下,防止以后自己忘了.还有一点就是很多时候,panel下的应用程序 ...

  3. Win7快速启动栏

    http://jingyan.baidu.com/article/456c463bbc1d140a583144cf.html 1. 在任务栏上右键 -> 工具栏 -> 新建工具栏.   在 ...

  4. win7和win8如何设置快速启动栏

    a.在任务栏上右键 -> 工具栏 -> 新建工具栏 -> 跳出选择文件夹对话框,在文件夹里面(光标山洞处)输入这个路径,然后按回车: %userprofile%\AppData\Ro ...

  5. win7 系统如何设置快速启动栏

    a.在任务栏上右键 -> 工具栏 -> 新建工具栏 -> 跳出选择文件夹对话框,在文件夹里面(光标山洞处)输入这个路径,然后按回车: %userprofile%\AppData\Ro ...

  6. win7 下恢复“经典任务栏”/“快速启动栏”,关闭“窗口自动最大化” -摘自网络

    1.自动放大窗口 鼠标把窗口拖到屏幕边缘时,win7会自做聪明的把窗口放大,有时候这个很烦人. 解决办法: 运行“REGEDIT”打开注册表,找到 “HKEY_CURRENT_USER\Control ...

  7. Delphi -- 创建 桌面、发送到...、快速启动栏、开始菜单、程序菜单、右键菜 单

    {================================================================= 功 能: 创建 桌面.发送到....快速启动栏.开始菜单.程序菜单 ...

  8. 如何用INNO安装添加快捷启动方式到Win7的快速启动栏(超级任务栏)

    问题:如何用INNO安装添加快捷启动方式到Win7的快速启动栏(超级任务栏) 在XP下,添加方式是直接把快捷方式复制到%appdata%\Microsoft\Internet Explorer\Qui ...

  9. vc++ windows 快速启动栏创建快捷方式

    创建快速启动栏 在windows软件开发中,软件安装过程中总是需要在快速启动栏创建快捷方式,下面介绍一种快速启动栏创建快捷方式的方法,具体代码如下:(该方法不支持win10,目前还没有找到win10的 ...

随机推荐

  1. c# 模拟表单提交,post form 上传文件、大数据内容

    表单提交协议规定:要先将 HTTP 要求的 Content-Type 设为 multipart/form-data,而且要设定一个 boundary 参数,这个参数是由应用程序自行产生,它会用来识别每 ...

  2. 使用Sqlserver事务发布实现数据同步

    事务的功能在sqlserver中由来已久,因为最近在做一个数据同步方案,所以有机会再次研究一下它以及快照等,发现还是有很多不错的功能和改进 的.这里以sqlserver2008的事务发布功能为例,对发 ...

  3. hibernate映射文件基础

    一.利用hibernate的eclipse插件快速生成实体类与配置文件的方法 1.首先下载安装和自己的eclipse版本配套的hibernate tools,如果是Myeclipse,在/readme ...

  4. 1003: [ZJOI2006]物流运输trans - BZOJ

    Description 很久以前,在一个遥远的星系,一个黑暗的帝国靠着它的超级武器统治者整个星系.某一天,凭着一个偶然的机遇,一支反抗军摧毁了帝国的超级武器,并攻下了星系中几乎所有的星球.这些星球通过 ...

  5. uva 11461

    简单 打个表 case数不超过200 数据比较水  木有超时的风险~~ /*************************************************************** ...

  6. Python 开源异步并发框架的未来

    http://segmentfault.com/a/1190000000471602 开源 Python 是开源的,介绍的这几个框架 Twisted.Tornado.Gevent 和 tulip 也都 ...

  7. strip_tags() 函数剥去 HTML、XML 以及 PHP 的标签

    定义和用法 strip_tags() 函数剥去 HTML.XML 以及 PHP 的标签. 语法 strip_tags(string,allow) 参数 描述 string 必需.规定要检查的字符串. ...

  8. Linux---Ls命令 初级实现

    By xxx0624Done:    ls    ls -a    ls -l    ls /tmp    ls -R    ls -t    FileName color    FileName o ...

  9. 内核request_mem_region 和 ioremap的理解

    request_mem_region仅仅是linux对IO内存的管理,意思指这块内存我已经占用了,别人就不要动了,也不能被swap出去.使用这些寄存器时,可以不调用request_mem_region ...

  10. Win7 默认hosts文件

    # Copyright (c) 1993-2009 Microsoft Corp. # # This is a sample HOSTS file used by Microsoft TCP/IP f ...