您的位置:首页 > 编程语言 > ASP

SharePoint 2010 应用自定义aspx页面调换列表默认的新建(NewForm.aspx),查看(DispFo...

2011-12-19 09:24 495 查看
如何应用自定义的aspx页(比如Application Page)调换列表默认的NewForm.aspx, DispForm.aspx 和 EditForm.aspx的页面?若是你只是更改这些页面的界面,那么推荐应用SPD2010和InfoPath,它们更快速便捷。独一的毛病是应用这些对象不克不及自定义后台代码(也容许以,只是我不会)。下面是我用的解决规划:

1.假设创建好三个Application Page分别叫newform.aspxdispform.aspxeditform.aspx。它们放在Layouts目次下。

再假设我的列表叫:My List。

2.你可以应用把握台应用法度或者WinForm应用法度。这里我应用一个可视webpart。在ascx页面上放在一个按钮,按钮的Click事务里下如下代码:

SPWeb web = SPContext.Current.Web;//启用非安然更新

web.AllowUnsafeUpdates = true;//获取列表

SPList list = web.Lists["My List"];

//获取列表的内容类型

SPContentType ct = list.ContentTypes["Item"];

//设置内容类型的属性

ct.EditFormUrl = "_layouts/editform.aspx";
ct.NewFormUrl = "_layouts/newform.aspx";
ct.DisplayFormUrl = "_layouts/dispform.aspx";ct.Update();

list.Update();

上方的代码道理很简单,就是获取列表的内容类型。而SPContentType类有EditFormUrl,NewFormUrl,DisplayFormUrl属性。经由过程更新这三个属性可以满足我们的需求。

重视:1.关于内容类型Item,若是你的SharePoint 2010是中文版,请改成:项目。不然会收到未将对象引用设置到实例的错误。

关于内容类型的持续,参考:http://www.cnblogs.com/Sunmoonfire/archive/2008/06/25/1229875.html

2.若是你想改成默认,请用下面的url调换上方的url.

/Lists/[列表题目]/NewForm.aspx;

/Lists/[列表题目]/DispForm.aspx;

/Lists/[列表题目]/EditForm.aspx;

(重视,关于[列表题目]的调换原则:若是你的列表题目是英文名,那么就调换成对应的英文即可。若是列表题目是中文名,请调换成list+数字 具体请看列表所有项目视图地址栏URL)

3.关于代码的应用办法,正如我前面说的你可以应用把握台应用法度,也可以应用WinForm应用法度,甚至像我应用一个webpart。代码只是改变指定列表的内容类型三个属性,一旦更改成功,代码就无用了。

别的,上方的代码只是改变列表My List的内容类型属性,不会影响其他列表。不过,若是你应用下面的代码可能会改变所有的。

SPWeb web = SPContext.Current.Web;

web.AllowUnsafeUpdates = true;

SPContentType ct = web.ContentTypes["Name Of Your Content Type"];

ct.EditFormUrl = "_layouts/editform.aspx";

ct.NewFormUrl = "_layouts/newform.aspx";

ct.DisplayFormUrl = "_layouts/dispform.aspx";

ct.Update();


本文参考:http://blog.qumsieh.ca/2009/05/15/how-to-change-the-default-editform-newform-and-dispform/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐