显示SharePoint自定义字段类型的自定义属性值的问题
问题描述:
我试图在具有自定义属性的SharePoint(WSS 3.0)中创建自定义字段类型。我已经基于SDK文档和this blog post创建了我的fldtypes * .xml文件,它似乎渲染得很好,我可以检索我的代码中的自定义属性值。我的问题是,在初始字段创建后,如果我回到列表设置页面并单击我新添加的字段,表单将显示我的自定义属性,其中包含一些我没有提供的值。例如,如果我的自定义属性的显示名称是“我的自定义属性”,则其文本框中的值将为“我的自定义属性字段值”。显示SharePoint自定义字段类型的自定义属性值的问题
我的问题是这样的:我怎样才能在这些文本框中正确显示我的自定义属性类型的实际字符串值?
这里是我的fldtypes * .xml文件:
<?xml version="1.0" encoding="utf-8"?>
<FieldTypes>
<FieldType>
<Field Name="TypeName">MyCustomField</Field>
<Field Name="TypeDisplayName">My Custom Field</Field>
<Field Name="TypeShortDescription">MyCustomField</Field>
<Field Name="ParentType">Text</Field>
<Field Name="UserCreatable">TRUE</Field>
<Field Name="FieldTypeClass">MyCustomField.CustomFields.MyCustomField, MyCustomField, Version=1.0.0.0, Culture=neutral, PublicKeyToken=d772gbab82fe6996</Field>
<PropertySchema>
<Fields>
<Field Name="MyCustomProp" DisplayName="My Custom Prop" Type="Text" MaxLength="50" DisplaySize="30" />
</Fields>
</PropertySchema>
</FieldType>
</FieldTypes>
下面是我的字段类型类代码:
public class MyCustomField : SPFieldText
{
private string propval;
public MyCustomField(SPFieldCollection fields, string fieldName)
: base(fields, fieldName)
{
}
public MyCustomField(SPFieldCollection fields, string typeName, string displayName)
: base(fields, typeName, displayName)
{
}
public override void Update()
{
// I can see any updated value here
propval = GetCustomProperty("MyCustomProp") as string;
base.Update();
}
public override Type FieldValueType
{
get { return typeof (string); }
}
}
我能做些什么,看在我正确的自定义属性值“更改列“页(FldEditEx.aspx)在我的SharePoint应用程序?
答
在自定义字段类型上有一个众所周知的问题saving and retrieving custom properties。这里是直接链接到work around。
顺便说一句,对帖子的一些意见声称同样的问题。