4

ホスト Web 上にリストを作成する SharePoint Hosted App (Javascript Object Model) を作成しました。

2 つのルックアップ フィールドでカスケード ドロップダウン効果を作成するために、JavaScript を新しいフォームと編集フォームに入れる必要があります。

リストとそのフィールドを作成する方法は次のとおりです。

    // Create a new list on host web
    var createList = function (listTitle, onSuccess, onFieldsReady) {
    var listCreationInfo = new SP.ListCreationInformation();
    listCreationInfo.set_title(listTitle);
    listCreationInfo.set_templateType(SP.ListTemplateType.genericList);

    var lists = hostWeb.get_lists();
    var newList = lists.add(listCreationInfo);

    currentContext.load(newList);
    currentContext.executeQueryAsync(onSuccess(newList, onFieldsReady), onListCreationFail);
}

    // Create a new field on a list
    var createField = function (list, fieldType, fieldName, fieldDisplayName, fieldRequired, onSuccess) {
    var fields = list.get_fields();
    var fieldXml = "<Field Type='" + fieldType + "' Required='" + fieldRequired + "' DisplayName='" + fieldDisplayName + "' Name='" + fieldName + "'></Field>";
    var createdField = fields.addFieldAsXml(fieldXml, true, SP.AddFieldOptions.addFieldInternalNameHint | SP.AddFieldOptions.addFieldToDefaultView);

    currentContext.load(createdField);
    currentContext.executeQueryAsync(onSuccess, onProvisionFieldFail);
}

アドバイスをお願いできますか?

よろしく、

マリアン

4

2 に答える 2

0

NewForm と Editform.aspx を使用するという考えを捨てることを検討する必要があります。独自のフォームを作成し、JSOM または WebApi を使用してリスト アイテムを追加/編集するだけです。

リストに項目を追加するためのサンプル コード:

jQuery.ajax({
    url: "http://<site url>/_api/web/lists/GetByTitle('Test')",
    type: "POST",
    data: JSON.stringify({ '__metadata': { 'type': 'SP.List' }, 'Title': 'New title' }),
    headers: { 
        "X-HTTP-Method":"MERGE",
        "accept": "application/json;odata=verbose",
        "content-type": "application/json;odata=verbose",
        "content-length": <length of post body>,
        "X-RequestDigest": $("#__REQUESTDIGEST").val(),
        "IF-MATCH": "*"
    },
    success: doSuccess,
    error: doError
 });

参照: http://msdn.microsoft.com/en-us/library/office/jj164022(v=office.15).aspx

于 2014-10-21T15:17:13.593 に答える