SharePoint 2010 使用自定义aspx页面替换列表默认的新建(NewForm.aspx),查看(DispForm.aspx)和编辑(EditForm.aspx)页面...
如何使用自定義的aspx頁(yè)(比如Application Page)替換列表默認(rèn)的NewForm.aspx, DispForm.aspx 和 EditForm.aspx的頁(yè)面?如果你只是更改這些頁(yè)面的界面,那么推薦使用SPD2010和InfoPath,它們更快速便捷。唯一的缺點(diǎn)是使用這些工具不能自定義后臺(tái)代碼(也許可以,只是我不會(huì))。下面是我用的解決方案:
1.假設(shè)創(chuàng)建好三個(gè)Application Page分別叫newform.aspx, dispform.aspx?和 editform.aspx。它們放在Layouts目錄下。
再假設(shè)我的列表叫:My List。
2.你可以使用控制臺(tái)應(yīng)用程序或者WinForm應(yīng)用程序。這里我使用一個(gè)可視webpart。在ascx頁(yè)面上放在一個(gè)按鈕,按鈕的Click事件里下如下代碼:?
SPWeb web = SPContext.Current.Web; //啟用非安全更新 web.AllowUnsafeUpdates = true; //獲取列表 SPList list = web.Lists["My List"]; //獲取列表的內(nèi)容類型 SPContentType ct = list.ContentTypes["Item"]; //設(shè)置內(nèi)容類型的屬性 ct.EditFormUrl = "_layouts/editform.aspx"; ct.NewFormUrl = "_layouts/newform.aspx"; ct.DisplayFormUrl = "_layouts/dispform.aspx"; ct.Update(); list.Update();?
上面的代碼原理很簡(jiǎn)單,就是獲取列表的內(nèi)容類型。而SPContentType類有EditFormUrl,NewFormUrl,DisplayFormUrl屬性。通過(guò)更新這三個(gè)屬性可以滿足我們的需求。
注意:1.關(guān)于內(nèi)容類型Item,如果你的SharePoint 2010是中文版,請(qǐng)改成:項(xiàng)目。否則會(huì)收到未將對(duì)象引用設(shè)置到實(shí)例的錯(cuò)誤。
關(guān)于內(nèi)容類型的繼承,參考:http://www.cnblogs.com/Sunmoonfire/archive/2008/06/25/1229875.html
2.如果你想改成默認(rèn),請(qǐng)用下面的url替換上面的url.
/Lists/[列表標(biāo)題]/NewForm.aspx;
/Lists/[列表標(biāo)題]/DispForm.aspx;
/Lists/[列表標(biāo)題]/EditForm.aspx;
(注意,關(guān)于[列表標(biāo)題]的替換原則:如果你的列表標(biāo)題是英文名,那么就替換成對(duì)應(yīng)的英文即可。如果列表標(biāo)題是中文名,請(qǐng)?zhí)鎿Q成list+數(shù)字 具體請(qǐng)看列表所有項(xiàng)目視圖地址欄URL)
3.關(guān)于代碼的使用方法,正如我前面說(shuō)的你可以使用控制臺(tái)應(yīng)用程序,也可以使用WinForm應(yīng)用程序,甚至像我使用一個(gè)webpart。代碼只是改變指定列表的內(nèi)容類型三個(gè)屬性,一旦更改成功,代碼就無(wú)用了。
另外,上面的代碼只是改變列表My List的內(nèi)容類型屬性,不會(huì)影響其他列表。不過(guò),如果你使用下面的代碼可能會(huì)改變所有的。
?
?
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/
?
轉(zhuǎn)載于:https://www.cnblogs.com/greeny/archive/2013/02/22/2920885.html
總結(jié)
以上是生活随笔為你收集整理的SharePoint 2010 使用自定义aspx页面替换列表默认的新建(NewForm.aspx),查看(DispForm.aspx)和编辑(EditForm.aspx)页面...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 防止QQ密码被盗的五个绝招
- 下一篇: 自动生成存储过程的脚本