博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
自定义 SharePoint 2010 快速启动栏和顶部链接栏
阅读量:5165 次
发布时间:2019-06-13

本文共 4667 字,大约阅读时间需要 15 分钟。

转:

在网上找到篇文章,自定义快速启动栏和顶部链接栏,以下为代码,根据文章的思路,需要两个方法(个人觉得这两个方法很蠢),首先在页面上放两个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();
        }
    }
}
自定义 SharePoint 2010 快速启动栏和顶部链接栏 - vickynuli - vickynuli的博客                          
自定义 SharePoint 2010 快速启动栏和顶部链接栏 - vickynuli - vickynuli的博客
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" οnclick="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" οnclick="btnQuick_Click" Text="添加到快速启动栏" />
                </td>
            </tr>
            <tr>
                <td>
                </td>
            </tr>
        </table>
    </div>
</asp:Content>

参考地址:

 

转载于:https://www.cnblogs.com/jackljf/p/3589181.html

你可能感兴趣的文章
vector常见用法
查看>>
《Java从入门到放弃》JavaSE入门篇:集合
查看>>
搭建ssm中遇到的问题
查看>>
Linux Python apache的cgi配置
查看>>
SHELL脚本--read命令
查看>>
RIP的缺点
查看>>
Doctype的作用
查看>>
java中的注释规范
查看>>
几道有趣的题
查看>>
hdu5834 Magic boy Bi Luo with his excited tree 【树形dp】
查看>>
Git 服务器搭建
查看>>
在js中利用标签添加元素
查看>>
centos7 挂载window下的共享文件夹
查看>>
NOIP2018游记
查看>>
VSCode修改Java运行及输出于集成终端而非调试控制台
查看>>
Unity最优化摘要
查看>>
类模板使用说明
查看>>
Redis源代码分析(一)--Redis结构解析
查看>>
Flex父子窗体相互调用
查看>>
改动网卡IP信息
查看>>