0

我们正在使用 Visual Studio LightSwitch HTML 客户端,在某些情况下,我们希望在文本输入到 TextBox 控件而不是控件的 LostFocus 时更新绑定目标。

这将以与使用XAML UpdateSourceTrigger.PropertyChanged 而不是 UpdateSourceTrigger.LostFocus类似的方式工作。

实现这一点的选项/推荐方法是什么?

4

1 回答 1

0

我们最终使用以下代码模式以适合我们要求的方式解决此问题:-

myapp.AddEditCustomer.Name_postRender = function (element, contentItem) {
    contentItem.dataBind("_view.isRendered", function (isRendered) {
        if (isRendered) {

            var tb = contentItem._view.underlyingControl;
            tb.getView().on("keyup", ".id-element", null, function (e) {
                tb.text = tb._textElement.val();
            });

            contentItem.dataBind("value", function (value) {
                // Use the toastr library from nuget (http://www.nuget.org/packages/toastr)
                // in order to display the value of the updated binding target 
                // and demonstrate that the update occurs on PropertyChanged 
                toastr.info("value [" + value + "]"); 
            });
        }
    });
};

通过使用 keyup 处理程序(针对底层文本框控件的输入元素添加),此方法强制绑定目标在释放键后更新。一旦文本框控件完成呈现,就会附加 keyup 处理程序。

上面的示例使用了优秀的 toastr JavaScript 库 ( codeeven.github.io/toastr ),可以使用关联的 NuGet 包 ( toastr ) 将其安装在 Visual Studio 中。

于 2015-03-13T15:09:29.727 回答