2016-09-02 27 views
0

私は私のCrossSiteLookupFieldクラスはSPFieldTextから継承の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> 

のSharePoint 2013でカスタムフィールドを作成しました。メソッド 'public override string GetValidatedString(object value)'は、メソッドを返します。 '4; #Test'(SPFieldLookupのように)。今度はフィルターに '4; #Test'と表示されますが、 'Test'が表示されているだけです。 2番目の質問は、次のとおりです。 '、私は2つのフィルタ行を持っていると思います。

機能は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

関連する問題