0

TFS 2012 Web アクセス カスタム コントロールを開発していますが、作業項目の保存ボタンがクリックされたときにいくつかの作業項目フィールドの値を変更する必要があります。

Visual Studio 用に同じカスタム コントロールを開発したばかりで、これらの変更を IWorkItemControl.FlushToDatasource メソッドで実行しましたが、Web アクセス コントロールで同じことを達成する方法がわかりません。

作業項目が保存されているときに、無効化関数で作業項目フィールドの値を変更しようとしましたが、

invalidate: function (flushing) {
    if (this._workItem.isSaving()) {
         this._workItem.getField("FieldName").setValue("newValue");
    }
},

ワークアイテムの保存中に行われた変更は、更新されたフィールドのリストに含まれていますが、保存されていません。

Javascript API を使用してどのように実装できますか?

ありがとう。

オスカー

4

1 に答える 1

2

これを試すことができますか:

    _control: null,
    _init: function() {
        alert("_init() called!");

        debugger;
        if (this._workItem) {
            var originalEstimate = this._workItem.getField("Microsoft.VSTS.Scheduling.OriginalEstimate").getValue();
            alert('OriginalEstimate value is ' + originalEstimate);
            console.log('this in _init');
            console.log(this);
        } else {
            alert('_workItem is null or undefined!');
            console.log('this in _init');
            console.log(this);
        }

        this._base();
        this._control = $("<div style='width:100%;height:100%;background-color:lightblue;'><button type='submit'>CLICK ME!</button></div>").appendTo(this._container).bind("click", delegate(this, this._onClick));
    },

    invalidate: function(flushing) {
        alert("invalidate(flushing) called!");
        var value = this._getField().getValue();

        debugger;
        if (this._workItem) {
            var originalEstimate = this._workItem.getField("Microsoft.VSTS.Scheduling.OriginalEstimate").getValue();
            alert('OriginalEstimate value is ' + originalEstimate);
            console.log('this in _init');
            console.log(this);
        } else {
            alert('_workItem is null or undefined!');

            console.log('this in _init');
            console.log(this);
        }

        alert(value);
    },

    clear: function() {
        alert("clear() called!");
    },

    _onClick: function() {
        alert("Butona tıklandı!");
    }
于 2017-07-12T13:47:12.197 に答える