私は、SharePoint 2013の開発とJavaScriptを使って二重に学習しています。Sharepoint 2013 Javascript - リストフィールドを取得
以下を参照してください。
function GetListFields(listname, viewname, ResultCallBackFunction)
{
var clientContext = new SP.ClientContext.get_current();
var web = clientContext.get_web();
var list = web.get_lists().getByTitle(listname);
if (viewname == "")
{
var view = list.get_views().getByTitle(viewname);
var listFields = view.get_viewFields();
}
else
{
this.listFields = list.get_fields().getByInternalNameOrTitle("Title");
}
clientContext.load(this.listFields);
clientContext.executeQueryAsync(onListFieldsQuerySucceeded, onListFieldsQueryFailed);
function onListFieldsQuerySucceeded()
{
console.log(listFields.get_fields().getByInternalNameOrTitle("Title").get_internalName());
var fldArray = new Array();
var fieldEnumerator = listFields.getEnumerator();
while (fieldEnumerator.moveNext())
{
var oField = fieldEnumerator.get_current();
fldArray.push(oField);
}
ResultCallBackFunction(fldArray);
}
function onListFieldsQueryFailed()
{
alert("Something went wrong. The End is Nigh.");
}
}
意図は、リストのフィールド名の配列を返すようにGetListFieldsを呼び出すことです。これは、 "console.log ...."行に "未定義またはヌル参照のプロパティ 'get_fields'を取得できません"というエラーを返します。これは私のデバッグのためのものです。
次のように私は機能のためにGetListFieldsを、コードを変更する場合:
var clientContext = new SP.ClientContext.get_current();
var web = clientContext.get_web();
var list = web.get_lists().getByTitle(listname);
if (viewname == "")
viewname = "All Items";
var view = list.get_views().getByTitle(viewname);
this.listFields = view.get_viewFields();
私は結果を得るのですが、これは私が名前を変更したので、私は私のリストにはありません。「LinkTitle」という名前のフィールドが含まれていますこの。私は何が欠けていますか?
this.listFields = ...
を行うことによって固定されているが違いを理解していない
var listFields = ...
を使用した場合
は、上記に加えて、私はエラーを得ました。
ありがとうございました。
ありがとうございます。 申し訳ありません申し訳ありませんが、コメントを投票することはできませんが、サイトは次のように報告しています。 –