根据页面属性显示图标

时间:2009-02-04 05:31:01

标签: sharepoint moss

在SharePoint(MOSS 2007)网站的内容类型中,如果属性是特定值,我想显示一个图标。

该列为是/否,因此所选值应该相当容易确定。

那么我怎样才能在ASPX中显示读取值?我知道我需要修改web.config以允许页内C#,但我只是不确定如何找到该属性。我想我需要使用SPContext.Current,但我不确定里面是什么。

3 个答案:

答案 0 :(得分:1)

您需要从列表中的项目中获取值。在顶部,我认为这将有效:

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
}

答案 1 :(得分:0)

我会回应EvilGoatBob的评论吗?因为通过XSLT进行显示通常要容易得多。 如果这在您的情况下不合适,则编码解决方案可能有效。 如果要在表单输入页面上显示,可以尝试custom field control

无论在何处使用该字段,都可以更容易地始终显示图标。

答案 2 :(得分:0)

我已经发现了如何做到这一点:

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());