2009-03-03 188 views
1

我试图在具有自定义属性的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应用程序?

回答

相关问题