2016-09-02 126 views
0

我已经在SharePoint 2013中创建自定义字段的SharePoint 2013自定义自定义字段过滤

<FieldTypes> 
    <FieldType> 
    <Field Name="TypeName">CrossSiteLookupField</Field> 
    <Field Name="ParentType">Text</Field> 
    <Field Name="TypeDisplayName">Cross-Site Lookup Field</Field> 
    <Field Name="TypeShortDescription"> Cross-Site Lookup Field </Field> 
    <Field Name="UserCreatable">TRUE</Field> 
    <Field Name="ShowOnColumnTemplateCreate">TRUE</Field> 
    <Field Name="ShowOnListCreate">TRUE</Field> 
    <Field Name="ShowOnDocumentLibraryCreate">TRUE</Field> 
    <Field Name="ShowOnSurveyCreate">FALSE</Field> 
    <Field Name="ShowInFileDlg">FALSE</Field> 
    <Field Name="Sortable">TRUE</Field> 
    <Field Name="Filterable">TRUE</Field> 
    <Field Name="AllowBaseTypeRendering">FALSE</Field> 
    <Field Name="CAMLRendering">TRUE</Field> 
    <Field Name="AllowGridEditing">FALSE</Field> 

    <Field Name="FieldTypeClass">CrossSiteLookupField.CrossSiteLookupField,$SharePoint.Project.AssemblyFullName$</Field> 
    <Field Name="FieldEditorUserControl">/_controltemplates/15/CrossSiteLookupFieldAdminTemplate.ascx</Field> 

    </FieldType> 
</FieldTypes> 

我CrossSiteLookupField类从SPFieldText继承。 'public override string GetValidatedString(object value)'方法返回例如'4; #Test'(比如SPFieldLookup)。现在过滤器显示'4; #Test',但我希望仅显示'测试'。 第二个问题是:如果我有一个多值分隔'; ',我想有两个过滤器行。

该功能应该等于Lookup和LookupMulti。

我该怎么做?

THX

回答

0

我有同样的问题。 您可以在C:\ Program Files \ Common Files \ microsoft shared \ Web Server Extensions \ 15 \ TEMPLATE \ LAYOUTS中更改Filter.aspx页面。 此页面创建选择过滤器的选项。 添加JavaScript您可以更改这些选项。 有了这个代码:

<Script> 
$ (Document) .ready (function() 
{ 
var presentText; 
$ ("Select> options"). Each (function() { 
Originaltext var = $ (this) .text(); 
if (originalText.indexOf ("#")> = 0) { 
var TextElement = Originaltext; 
if (TextElement == presentText) {$ (this) .remove(); } 
else { 
var = newText originalText.substring (2 originalText.indexOf ("#", 2)); 
if (newText == "") newText = "Empty"; 
if (originalText.indexOf ("true")> = 0) newText + = "(Validated)"; 
else newText + = "(not valid)"; 
$ (This) .text (newText); 
} 
presentText = TextElement; 
} 
}); 
}); 
</ Script> 

编辑过滤器的声音: original option 到: modified option