1

SharePoint 2010 にいくつかの列を含むリストがあります。すべてデフォルトのタイプです。したがって、
「1行のテキスト」
「複数行のテキスト」
「日付と時刻」
「選択肢」
「数字」
「通貨」
「人またはグループ」があります

私の目的は、このリストに対して何らかのアクションを実行できるカスタム リボン タブまたはグループを作成することです。出発点として、Visual Studio ソリューションで空の要素を作成し、Elements.xml 内にボタンを配置しました。これはこれまでのところ機能します。また、押されたボタンに反応するようにポストバックを行う方法も考え出しました。このポストバックは JavaScript ファイルを参照しています。

いくつかのアクションを実行する前に、最初に指定されたコンテンツを読み取り、 を使用してそれらを返すことを試みましたalert('first field: ' + field1)。最初に呼び出された関数で私が持っている

function calledPostbackFunction(string button) {  
    var context = SP.ClientContext.get_current();  
    this.site = context.get_site();  
    this.web = context.get_web();  
    context.load(this.site);  
    context.load(this.web);  
    context.executeQueryAsync(Function.createDelegate(this, this.onQuerySucceded(button), Function.createDelegate(this, this.onQueryFailed));

リストされた列タイプからコンテンツを取得するにはどうすればよいですか? 1行のテキストと選択肢を読むことができたのを覚えていますが、残りはクラッシュしました。だから私はそれを何らかの方法で変換する必要があると思います。しかし、どのように?IntelliSense はあまり役に立ちません。

サブ質問: クライアント オブジェクト モデルを使用できる .cs ファイルに PostBack する方法を教えていただければ、EcmaScript の使用をスキップします。何かを見つけましたが、うまくいきませんでした/理解できませんでした。

はい、これは簡単だと思いましたが、そうではありませんでした。少なくとも、私は C# を少ししか知らないので、EcmaScript は知りません。

ありがとう。

4

1 に答える 1

4

さて、ユーザーVardhaman DeshpandeからソリューションSharepoint.Stackoverflow.comを取得しました。これは機能します。

各タイプのフィールドの値を取得する方法は次のとおりです。

Title – SP.ListItem.get_item(‘Title‘);

ID – SP.ListItem.get_id();

Url -SP.ListItem.get_item(‘urlfieldname‘).get_url()

Description – SP.ListItem.get_item(‘descriptionfieldname‘).get_description();

Current Version – SP.ListItem.get_item(“_UIVersionString“);

Lookup field – SP.ListItem.get_item(‘LookupFieldName’).get_lookupValue();

Choice Field – SP.ListItem.get_item(‘ChoiceFieldName‘);

Created Date – SP.ListItem.get_item(“Created“);

Modified Date – SP.ListItem.get_item(“Modified“); -> case sensitive does not work with ‘modified’

Created By – SP.ListItem.get_item(“Author“).get_lookupValue());

Modified by – SP.ListItem.get_item(“Editor“).get_lookupValue());

File  – SP.ListItem.get_file();

File Versions -  File.get_versions();.

Content Type – SP.ListItem.get_contentType();

Parent List – SP.ListItem.get_parentList();

から: http://www.learningsharepoint.com/2011/07/06/how-to-get-various-item-fields-using-client-object-model-ecmascript-sharepoint-2010/

更新:次のコードは動作し、テストされています。

var item;
function getItemById(itemId){

    var clientContext = new SP.ClientContext.get_current();

    var web = clientContext.get_web();

    var list = web.get_lists().getByTitle('myList');

    item = list.getItemById(itemId);

    clientContext.load(item);

    clientContext.executeQueryAsync(onSuccess, onFailure);
}
function onSuccess(){

    alert(item.get_item("My User column").get_lookupValue());
}
function onFailure(){

    alert('Failure!');
}
于 2012-01-26T12:10:25.123 に答える