TIPS-WSS V3客製化初體驗

我在公司用WSS V2建了個人Portal,用來放工作日誌、自製元件的參考文件/FAQ,以及日常管理用的簡單表單等。趁著過年主機升級,順勢將WSS V2升級到WSS V3,然後將幾個常用的重大清單搬至新機,至於一些只有自己在用的舊內容就先擱著,日後再說。

花了一天多搬搬弄弄,以下是我的心得:

1.WSS V2的清單範本(List Template)是將清單(含內容)搬到另一台的好方法,但V2的List Template不能拿到V3用,而V2雖可以就地昇級(In-Place Upgrade)成WSS V3,但因為不想直接拿舊站台開刀(怕萬一搞壞連V2都沒得用),又懶得複製一個環境來試,所以我沒嘗試V2->V3的昇級。

2.搬清單,我選擇的方法是先將V2清單轉成Excel,再用它在V3中建立成List(建立新清單時,可以選擇由Excel建立)。有些欄位資料需要手工修改,可以透過T-SQL搞定,例如: V2轉Excel時會保留RichText,建在V3時,字型、大小會走樣,所以我用以下的語法,去舊DB抄原文過來,同理,要將修改日期與原清單中的項目一致,也可如法砲製。
update AllUserData
set ntext2=W2.ntext2
from AllUserData W3,WSSData.dbo.UserData W2
where W3.nvarchar1=W2.nvarchar1
and W3.tp_listid='37FFF135-B94B-4AF7-9193-8F9503A95F09'
and W2.tp_ListId='3721B173-EC96-42A7-B663-F7261BDC8334'

3.V3比V2更容易客製化! 舉個例子來說,以前為了要在NewForm.aspx中讀到登入使用者姓名,不知白了多少頭髮: 由於NewForm.aspx中不允許加上Server-Side的Code,所以我寫了獨立的UserInfo.aspx取得使用者資料,NewForm.aspx中則用IFrame嵌入UserInfo.aspx,再透過Javascript跨Frame讀取使用者姓名,呼~~~
V3的web.config中允許我們開放ASPX中可以加入Server-Side Code:
<PageParserPaths>
<PageParserPath VirtualPath="/Lists/List/NewForm.aspx" CompilationMode="Always" AllowServerSideScript="true" />
</PageParserPaths>
解除封印後,我們只要寫一行Code就搞定收工!
<script type="text/javascript">
document.all("userName").value = '<% = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss ") + SPControl.GetContextWeb(Context).CurrentUser.Name %>';
...
</script>

Published 24 February 2007 12:25 AM 由 Jeffrey
Filed under: ,


意見

# 小熊子 said on 27 February, 2007 04:37 AM

可不可以有更好的潛盾機呀~可以升級 v2 list -> v3 …我有好多要搬,快哭出來了 :(

你的看法呢?

(必要的) 
(必要的) 
(選擇性的)
(必要的) 

請輸入以上的數字:

搜尋

Go

<February 2007>
SunMonTueWedThuFriSat
28293031123
45678910
11121314151617
18192021222324
25262728123
45678910
 
RSS
【工商服務】


BlogLook Score and Rank

Syndication