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 回答