MOSS的页面发布功能,页面始终保存到跟目录下,如何使页面创建到子文件夹下呢?

网上没有找到相关的资料,只好改一下系统的代码了。

publishing的系统页面是: _layouts/CreatePage.aspx.

添加以下代码到CreatePage.aspx:

<%@ Import Namespace="Microsoft.SharePoint" %>
<%@ Import Namespace="Microsoft.SharePoint.Publishing" %>
<script runat="server">
string _folderUrl ;
int _layoutId ;
string _pageName ;
 void   CreatePageToCurrentFolder(object sender, EventArgs e)
{    
    _folderUrl = "" + Request.QueryString["RootFolder"];    
    _layoutId = Convert.ToInt32( dropdownList.SelectedValue );    
    _pageName = this.urlNameTextBox.Text.Trim() + ".aspx" ;        
    CreatePage();
}

PageLayout GetPageLayout( PublishingWeb publishingWeb , int layoutId)
{
    PageLayout[] layouts = publishingWeb.GetAvailablePageLayouts(); 
        
    foreach( PageLayout l in layouts )
    {
       if( l.ListItem.ID == layoutId){
           return l ;
        }
    }    
    return null  ;
}

 void CreatePage()
{                     //bool o = PublishingWeb.IsPublishingWeb(base.Web) ;        
        PublishingWeb publishingWeb = PublishingWeb.GetPublishingWeb(base.Web);
        PublishingSite site = new PublishingSite(base.Web.Site);         
        //if (publishingWeb.GetPublishingPages()["Pages/my1.aspx"] == null)        
        //Create the default page        //SPContentTypeId contentTypeID = new SPContentTypeId("0x010100C568DB52D9D0A14D9B2FDCC96666E9F2007948130EC3DB064584E219954237AF3900916CECA7C77446059633C4287903AA2A");
        //PageLayout[] layouts = publishingWeb.GetAvailablePageLayouts();      
        //PageLayout selectedPageLayout = layouts[0];                
        PageLayout selectedPageLayout = GetPageLayout( publishingWeb , _layoutId ) ;                
        string fullPagePath = _pageName ;        
        if( _folderUrl != "" )
            fullPagePath = _folderUrl + "/" + _pageName ;
        PublishingPage newPage = publishingWeb.GetPublishingPages(1).Add(  fullPagePath  , selectedPageLayout);          
       // newPage.Title = this.urlNameTextBox.Text.Trim() ;        
         newPage.Update();        
       SPListItem item =  publishingWeb.PagesList.GetItemById( newPage.ListItem.ID );       
        item["Title"] = this.urlNameTextBox.Text.Trim() ;   
       // item["主题"] = this.urlNameTextBox.Text.Trim() ;   
        item.Update();
        //Set the default page
        SPFile welcomeFile = base.Web.GetFile(newPage.Url);
        //publishingWeb.DefaultPage = welcomeFile;     
        string webUrl = publishingWeb.Url;
        if (!webUrl.EndsWith("/"))
            webUrl += "/";
        Page.Response.Redirect(webUrl + newPage.Url + "?ControlMode=Edit&DisplayMode=Design");
        //publishingWeb.Update();        
}
</script>

修改保存按钮事件:

<asp:Button runat="server" class="ms-ButtonHeightWidth" OnClick="CreatePageToCurrentFolder"
Text="<%$Resources:cms, createpage_createbutton%>" id="buttonCreatePage" AccessKey="<%$Resources:cms,createbutton_accesskey%>"/>

MOSS publishing功能:创建页面到子文件夹相关推荐

  1. 用chrome的snippets片段功能创建页面js外挂程序,从控制台创建js小脚本

    用chrome的snippets片段功能创建页面js外挂程序,从控制台创建js小脚本 Chrome的snippets是小脚本,还可以创作并在Chrome DevTools的来源面板中执行. 可以访问和 ...

  2. R 创建文件夹和子文件夹

    测试案例1 main_dir="./" sub_dir="fassafsdfa" ## Provide the dir name(i.e sub dir) th ...

  3. matlab中创建一个工程,从文件夹创建新工程

    从文件夹创建新工程 如果您有许多文件并希望将它们整理为一个工程(无论是否进行源代码管理),请按照以下步骤创建一个新工程. 使用 Simulink® Start Page 中的 Folder to Pr ...

  4. python中glob模块怎么下_如何在Python中使用glob.glob模块搜索子文件夹?

    如何在Python中使用glob.glob模块搜索子文件夹? 我想在文件夹中打开一系列子文件夹,找到一些文本文件并打印一些文本文件行. 我用这个: configfiles = glob.glob('C ...

  5. C#遍历指定文件夹中的所有文件和子文件夹

    参考:http://www.cnblogs.com/skylaugh/archive/2012/09/23/2698850.html DirectoryInfo TheFolder=new Direc ...

  6. 如何在Windows中的命令提示符下删除特定目录中的文件/子文件夹

    本文翻译自:How to delete files/subfolders in a specific directory at the command prompt in Windows Say, t ...

  7. 在SharePoint中创建可自定义属性的文件夹

    概况 阅读时间:约5分钟 适用版本:SharePoint Server 2010及以上 面向用户:普通用户.管理员.开发人员 难度指数:★★★☆☆ SharePoint中的文件夹分为2种,一种是文档库 ...

  8. 关于IDEA创建空白项目和文件夹会自动折叠的问题

    关于IDEA创建空白项目和文件夹会自动折叠的问题 关于IDEA创建空白项目和文件夹会自动折叠的问题!!折磨已久的问题曾经一度暴炸! 文件项目自动折叠真的很烦!不仅不好找项目和文件还容易引发不经意的失误 ...

  9. linux文件夹加密访问,技术|Linux系统上用encfs创建和管理加密文件夹

    如果你想使你计算机上的某些信息免于被窥视的话,可以看看这篇文字.保护信息的一种方法就是加密你的home目录,但是一旦你登录系统后,你的home目录下的信息将暴露于外.过去,我已经写过关于怎样在你的系统 ...

最新文章

  1. asp.net 网页做一个浮动层_【CSS】7 页面布局:浮动
  2. 汇编语言——《子程序应用(数制转换)程序设计》实验报告
  3. 【spring-session】错误:No bean named 'springSessionRepositoryFilter' available
  4. 【EWSA无线路由密码破解工具 中文特别版下载】含教程及字典(弱口令生日特殊符号等)
  5. java post返回xml数据类型_Java 通过HttpURLConnection Post方式提交xml,并从服务端返回数据...
  6. object-c 中括号[]
  7. Android学习之-TextView的滑动效果
  8. java synchronized互斥锁使用
  9. 统计学习方法读书笔记1-统计学习方法概论
  10. Luogu1220 关路灯
  11. 可行性研究与效益分析
  12. 关于局域网的一点个人理解及如何建立一个局域网的步骤
  13. wordpress关闭所有文章评论
  14. 一个简单的Appium测试(Python语言)
  15. python数据分析电影论文_以腾讯5000部电影为例,告诉你Python数据分析该怎么做...
  16. 《Linux就该这么学》培训笔记_ch00_认识Linux系统和红帽认证
  17. C语言学习笔记——typedef
  18. 【JavaScript】——正则表达式
  19. 数据仓库数据存储与处理
  20. 新建Flutter项目

热门文章

  1. ES权威指南[官方文档学习笔记]-14 phrase search
  2. 【有奖征文】如何提高IDC机房服务器的安全性
  3. 能量时域空间物理_5G新在哪儿(11)-下行公共物理控制信道
  4. 每天5分钟玩转python3算法:二分查找法
  5. python基础:细节问题梳理
  6. 搜索(DFS)---好友关系的连通分量数目
  7. 基于 Storyboard 多种方式的页面跳转、参数传递
  8. 服务器报错您的主机中的软件中止了一个已建立的连接
  9. JS三种简单排序算法
  10. 怎样通过WireShark抓到的包分析出SIP流程图