0

我在 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。

我怎样才能做到这一点?

谢谢

4

1 回答 1

0

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

$(document).ready(function ()
{
    var presentText;

    $("select > options").each(function ()
    {
        var originalText = $(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;
        }
    });
});

编辑过滤器的声音: 原始选项 到: 修改选项

于 2016-12-21T13:33:43.610 回答