在SharePoint(MOSS 2007)站點上的內容類型中,如果屬性是特定值,我想顯示一個圖標。根據頁面屬性顯示圖標
該列是一個是/否,因此所選值應該很容易確定。
那麼我怎樣才能在ASPX中顯示讀取值呢?我知道我需要修改web.config以允許頁面內C#,但我不確定如何找到該屬性。我想我需要使用SPContext.Current
,但我不確定裏面有什麼。
在SharePoint(MOSS 2007)站點上的內容類型中,如果屬性是特定值,我想顯示一個圖標。根據頁面屬性顯示圖標
該列是一個是/否,因此所選值應該很容易確定。
那麼我怎樣才能在ASPX中顯示讀取值呢?我知道我需要修改web.config以允許頁面內C#,但我不確定如何找到該屬性。我想我需要使用SPContext.Current
,但我不確定裏面有什麼。
嗯,我已經找到了如何做到這一點:
var item = SPContext.Current.File.Item; //returns the SPListItem for the current context
var myField = item["SomeFieldName"]; //this will throw a NullReferenceException if there is no data for the field yet though
Response.Write(myField.ToString());
您需要從列表中的項目中獲取值。我認爲這將工作:
SPList list = SPContext.Current.Web.Lists["my list name"];
SPListItem item = list.items.GetItemById(ItemId);
//the following 2 lines are not strictly necessary
//but since you explicitly mentioned this is related to ContentTypes
//this is how you can ensure the item you retrieved is of the apprpriate type
SPContentTypeId myContentTypeId = GetContentTypeId();
if (list.ContentTypes.BestMatch(myContentTypeId).Equals(item.ContentType.Id))
{
string value = item["interesting field name"].ToString();
//if the value is of interest, do your thing
}
你在哪裏獲得當前加載頁面的ID? – 2009-02-04 22:14:17
我會迴應評論EvilGoatBob?因爲用XSLT顯示通常要容易得多。 如果這不適合您的情況,可以使用代碼解決方案。 如果要在表單輸入頁面上顯示,您可以嘗試使用custom field control
無論使用哪個字段,都可以更容易地統一顯示圖標。
你有沒有考慮使用列表視圖Web部件XSLT來實現這個,而不是編寫自定義代碼? – 2009-02-04 17:42:53