2014-09-24 8 views
1

Как удалить поле «title» в процессе установки нового списка с помощью JSOM?Скрыть колонку в Newform.aspx SharePoint 2013

Я нахожусь на Sharepoint 2013 онлайн.

Мой код:

var field1 = newList.get_fields().addFieldAsXml(
    "<Field Type='UserMulti' DisplayName='Name' Description='c' Required='FALSE' ShowField='NameWithPictureAndDetails' Name='Name' Mult='FALSE' UserSelectionMode='PeopleAndGroups' />", true, SP.AddFieldOptions.addFieldInternalNameHint); 

currentContext.load(field1); 
currentContext.executeQueryAsync(onListCreationSuccess, onListCreationFail); 
} 

function onListCreationSuccess() { 

var list = hostweb.get_lists().getByTitle("AnstalldDatum"); 

    var fieldToEdit = list.get_fields().getByTitle("Title"); 
    fieldToEdit.setShowInDisplayForm(false); 
    fieldToEdit.setShowInNewForm(false); 
    fieldToEdit.setShowInEditForm(false); 
    fieldToEdit.set_hidden(true); 
    fieldToEdit.update(); 

    currentContext.executeQueryAsync(function() { 

     console.log("Sucess: Fields installed! "); 
     $(".status").append('List Installed'); 

    }); 
} 
+0

Мне было интересно, вы не хотите скрывать его, используя настройки списка? –

+0

Какие настройки списка? – Peter

+1

Вы не можете скрыть его в настройках списка – Peter

ответ

2

Следующие методы позволяют управлять видимостью поля в Список форм:

В приведенной ниже примере показано, как установить видимость поля в List Forms с помощью JSOM:

function setFieldVisibility(listTitle,fieldName,properties,success,failure) 
{ 
    var ctx = SP.ClientContext.get_current(); 
    var web = ctx.get_web(); 
    var list = web.get_lists().getByTitle(listTitle); 
    var field = list.get_fields().getByTitle(fieldName); 
    field.setShowInDisplayForm(properties.ShowInDisplayForm); 
    field.setShowInNewForm(properties.ShowInNewForm); 
    field.setShowInEditForm(properties.ShowInEditForm); 
    field.set_hidden(properties.Hidden); 
    field.update(); 
    ctx.executeQueryAsync(success,failure); 
} 

Usage

Скрыть Title Поле от формы новой формы:

var listTitle = 'Custom List'; 
var fieldName = 'Title'; 


var properties = { 
     'ShowInDisplayForm': true, 
     'ShowInNewForm': false, 
     'ShowInEditForm': true, 
     'Hidden': false 
}; 
setFieldVisibility(listTitle,fieldName,properties, 
    function() { 
     console.log("Field visibility settings has been changed"); 
    }, 
    function(sender,args){ 
     console.log(args.get_message()); 
    } 
); 
+0

Спасибо Вадим. Его работа для текстового поля. но он дает ошибку «Узел должен быть вставлен из другого контекста документа». для поля выбора скрывается форма редактирования и просмотра. – Vishal

+0

Я заметил, что вы скрываете поле на уровне списка, но что, если вы хотите установить поле, скрытое на уровне типа контента, будет ли он по-прежнему тем же? Я пытаюсь скрыть поля для определенного типа контента. – Batman