SPField的几种name的释疑
生活随笔
收集整理的這篇文章主要介紹了
SPField的几种name的释疑
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
編寫SharePoint Object Model代碼時, 經常要用到SPField. 這個SPField有不少名字, 讓人很容易混淆.
- Display Name
- Internal Name
- Name
- ColName
- StaticName
下面就讓我們總結一下吧.
?
你可以使用下面的代碼把列表的FieldSchema撈出來看一下.
using (SPSite site = new SPSite("http://servername/sites/testsite")) {using (SPWeb web = site.OpenWeb()){SPList splist = web.Lists["issue tracking1"];FileStream fs = new FileStream(@"C:\temp\listschema.xml", FileMode.Create);StreamWriter sw = new StreamWriter(fs);sw.Write(splist.Fields.SchemaXml);} }?
這個文件比較大, 我就抽選兩個Field來作為例子:
<Field ID="{1df5e554-ec7e-46a6-901d-d85a3881cb18}" ColName="tp_Author" RowOrdinal="0" ReadOnly="TRUE" Type="User" List="UserInfo" Name="Author" DisplayName="Created By" SourceID="http://schemas.microsoft.com/sharepoint/v3" StaticName="Author" FromBaseType="TRUE"/>和
<Field ID="{3881510a-4e4a-4ee8-b102-8ee8e2d0dd4b}" ColName="tp_CheckoutUserId" RowOrdinal="0" ReadOnly="TRUE" Type="User" List="UserInfo" Name="CheckoutUser" DisplaceOnUpgrade="TRUE" DisplayName="Checked Out To" SourceID="http://schemas.microsoft.com/sharepoint/v3" StaticName="CheckoutUser" FromBaseType="TRUE"/>?
這里可以看到這個field的全部信息, 如果你對某個列表的field的某個名字不清楚, 可以使用撈xml的大招來釋疑.
我寫過一篇文章, 叫做SPQuery 在引用field的時候要用internal name, 那么SPQuery用到的Internal Name是哪一個呢?
?
| Name = Internal Name | Display Name | ColName | StaticName |
| SPQuery使用的名字 | 界面上顯示的名字 | 數據庫中對應的列名 | 不知道做什么的, 看了好幾個都與Name, Internal Name一樣. |
| CheckoutUser | Checked Out To | tp_CheckoutUserId | CheckoutUser |
| Author | Created By | tp_Author | ? |
| ? | ? | ? | ? |
?
應用
================
讀寫Field時
?
寫代碼時應用如下:
SPListItemCollection oitems = splist.Items;foreach (SPListItem oitem in oitems){//Use display name here.string oAutorStr = oitem["Created By"].ToString();Console.WriteLine();}?
===========================
編寫SPQuery時
?
對應的代碼如下:
SPQuery query = new SPQuery();query.Query = "<Where>" +"<Eq>" +"<FieldRef Name='StatusInternal'/>" +"<Value Type='Text'>Good</Value>" +"</Eq>" +"</Where>";SPListItemCollection items = splist.GetItems(query);?
以上代碼均通過了測試.
?
注意, 如果是在頁面中使用javascript調用web service來查詢list item, 那么通常返回結果中XML里, field的名字會在前面加上ows_前綴
?
如果您覺得清楚了, 那我的功夫就沒白費. 呵呵.
總結
以上是生活随笔為你收集整理的SPField的几种name的释疑的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 计算器上的mu键是什么意思
- 下一篇: Kevin专栏---自定义安装对话框的界