QuickLunch Customization in Sharepoint 2010
QuickLunch Customization in Sharepoint 2010
我创建了一个web部件定制的快速午餐,可以在sharePoint 2010中扩展和折叠(+和-),问题是,当网站加载默认的快速午餐扩展,我想要它被折叠,我不知道如何做到这一点你能帮我一下吗?
第一个代码是c#代码的用户控件
using System;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using Microsoft.SharePoint;
using Microsoft.SharePoint.Navigation;
namespace QuickLaunchWebpart.Quicklaunch_Webpart
{
public partial class Quicklaunch_WebpartUserControl : UserControl
{
private void LoadQuickLauchDesign()
{
try
{
SPSecurity.RunWithElevatedPrivileges(delegate()
{
Guid SiteID = SPContext.Current.Site.ID;
Guid WebID = SPContext.Current.Web.ID;
using (SPSite site = new SPSite(SiteID))
{
using (SPWeb web = site.OpenWeb(WebID))
{
SPUser oUser = SPContext.Current.Web.CurrentUser;
SPNavigationNodeCollection nodecoll = web.Navigation.QuickLaunch;
foreach (SPNavigationNode node in nodecoll)
{
TableRow tr = new TableRow();
TableCell cell = new TableCell();
cell.Style.Add("padding-bottom", "15px");
Table innerTable = new Table();
innerTable.CellPadding = 0;
innerTable.CellSpacing = 0;
// innerTable.BorderWidth = 1;
innerTable.Style.Add("width", "100%");
TableRow innerTrTitle = new TableRow();
innerTrTitle.Attributes.Add("onclick", "category_click()");
TableCell innerCellTitle = new TableCell();
innerCellTitle.CssClass = "category";
Image img = new Image();
img.ImageAlign = ImageAlign.Left;
img.ImageUrl = "/_layouts/images/MDNExpanded.png";
Label title = new Label();
title.Style.Add("font-size", "larger");
title.Text = node.Title;
Table titleCellTable = new Table();
titleCellTable.CellPadding = 0;
titleCellTable.CellSpacing = 0;
//titleCellTable.Attributes.Add("border", "1");
TableRow trtitleCellTable = new TableRow();
TableCell imageCell = new TableCell();
TableCell titleCell = new TableCell();
imageCell.Controls.Add(img);
titleCell.Controls.Add(title);
trtitleCellTable.Cells.Add(imageCell);
trtitleCellTable.Cells.Add(titleCell);
titleCellTable.Rows.Add(trtitleCellTable);
innerCellTitle.Controls.Add(titleCellTable);
innerTrTitle.Cells.Add(innerCellTitle);
innerTable.Rows.Add(innerTrTitle);
Panel div = new Panel();
div.Style.Add("background-color", "#FCFCFC");
//div.Style.Add("border-left", "1px solid #DBDDDE");
//div.Style.Add("border-bottom", "1px solid #DBDDDE");
Table childTable = new Table();
childTable.CellPadding = 0;
childTable.CellSpacing = 0;
childTable.Style.Add("width", "100%");
foreach (SPNavigationNode childnode in node.Children)
{
childTable.Rows.Add(ChildTableRow(childnode.Title, childnode.Url));
}
div.Controls.Add(childTable);
TableRow innerTrLinks = new TableRow();
innerTrLinks.Visible = true;
TableCell innerCellLinks = new TableCell();
innerCellLinks.Style.Add("border-right", "1px solid #DBDDDE");
innerCellLinks.Style.Add("padding-left", "15px");
innerCellLinks.Controls.Add(div);
innerTrLinks.Cells.Add(innerCellLinks);
innerTable.Rows.Add(innerTrLinks);
cell.Controls.Add(innerTable);
tr.Cells.Add(cell);
tbl1.Rows.Add(tr);
}
}
}
});
}
catch (Exception ex)
{
lblError.Text = ex.StackTrace;
lblError.Visible = true;
}
}
private TableRow ChildTableRow(string title, string Url)
{
TableRow tr = new TableRow();
tr.Height = 20;
TableCell cell = new TableCell();
HyperLink link = new HyperLink();
link.Text = title;
link.NavigateUrl = Url;
link.Attributes.Add("quick_link", "true");
link.Style.Add("display", "block");
cell.Controls.Add(link);
tr.Cells.Add(cell);
if (Request.Url.ToString().Contains(Url) && !(Request.Url.ToString().Contains("/SitePages/Home.aspx")))
{
tr.Attributes.Add("current", "true");
link.Attributes.Add("current", "true");
}
return tr;
}
protected void Page_Load(object sender, EventArgs e)
{
LoadQuickLauchDesign();
}
}
}
以下代码用于usercontrol
中使用的Java脚本<script type="text/javascript">
function category_click() {
var evtSource = event.srcElement + '';
var innerTblRef = null;
if (evtSource == '[object HTMLTableCellElement]') {
innerTblRef = event.srcElement.parentElement.parentElement;
} else if (evtSource == '[object HTMLSpanElement]' || evtSource == '[object HTMLImageElement]') {
innerTblRef = event.srcElement.parentElement.parentElement.parentElement.parentElement.parentElement.parentElement.parentElement;
}
//Locating the Collapse Image icon
var imgRef = innerTblRef.rows[0].cells[0].firstChild.rows[0].cells[0].firstChild
if (innerTblRef.rows[1].style.visibility == 'visible' || innerTblRef.rows[1].style.visibility == '') {
innerTblRef.rows[1].style.visibility = 'hidden';
innerTblRef.rows[1].style.display = 'none';
imgRef.src = "/_layouts/images/MDNCollapsed.png";
} else {
innerTblRef.rows[1].style.visibility = 'visible';
innerTblRef.rows[1].style.display = 'block';
imgRef.src = "/_layouts/images/MDNExpanded.png";
}
}
function link_hover() {
var cellRef = event.srcElement;
cellRef.className = "link_hover";
if (cellRef + '' == '[object HTMLTableCellElement]') { //Cell hover
cellRef.firstChild.className = "link_hover";
} else { // Image hover
cellRef.parentElement.className = "link_hover";
}
}
function link_hout() {
var cellRef = event.srcElement;
cellRef.className = "link_hout";
if (cellRef + '' == '[object HTMLTableCellElement]') { //Cell hover
cellRef.firstChild.className = "link_hout";
} else { // Image hover
cellRef.parentElement.className = "link_hout";
}
}
</script>
你能帮我一下吗
我在朋友的帮助下解决了我的问题,在LoadQuickLauchDesign
中添加了以下行if(node.Children.Count>0) img.ImageUrl="/_layouts/images/MDNCollapsed.png"
else img.ImageUrl = "/_layouts/images/MDNExpanded.png";
代替
img.ImageUrl = "/_layouts/images/MDNExpanded.png";
和ChildTableRow函数中添加以下内容innerTrLinks.Style。添加("显示","没有一个");innerTrLinks.Style。添加("可见性"、"隐藏");而不是innerTrLinks。Visible = true;效果很好
相关文章:
- 如何使用Javascript客户端对象模型检索Sharepoint 2010列表项权限
- SharePoint 2010 Jquery/JSON Rest Multiple OR语句-如何
- 让Javascript在SharePoint 2010上运行时遇到问题
- 分析sharepoint 2010 Web部件中的json
- 如何在 SharePoint 2010 网站上编写用于预览窗格的 JavaScript/jQuery
- Javascript 中的 SharePoint 2010 拍卖页面行为异常
- SharePoint 2010 SP.FileCreationInformation() in javascript c
- 如何通过OnClick使用SharePoint用户名更新SharePoint 2010列
- Sharepoint 2010中的jQuery和JavaScript错误
- SharePoint 2010 Rest API错误(未检索数据)
- 在 SharePoint 2010 上创建“添加新项目”按钮
- Sharepoint 2010 JSOM getEnumerator '集合尚未初始化.尚未提出要求..'
- SharePoint 2010 和电子邮件列表视图
- 从 SharePoint 2010 Webpart 中的 JavaScript 调用 C# 方法
- 如何将简单的 jquery 滑块添加到 SharePoint 2010 Web 部件
- 如何在 SharePoint 2010 中自动在页面中添加讨论板
- 根据 jQuery (SharePoint 2010) 中的复选框的值显示节
- SharePoint 2010 更改需要字段
- SharePoint 2010 - Javascript 根据标题更新列表项值
- Sharepoint 2010-停止不安全的代码删除