在LightSwitch HTML客户端中将TextBox控件的绑定目标更新为PropertyChanged(keydown)

时间:2015-02-06 12:50:45

标签: visual-studio-lightswitch lightswitch-2013 lightswitch-2012

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

这与使用XAML UpdateSourceTrigger.PropertyChanged rather than UpdateSourceTrigger.LostFocus的方式类似。

实施此选项/建议的方法有哪些?

1 个答案:

答案 0 :(得分: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库(codeseven.github.io/toastr),它可以使用关联的NuGet包(toastr)安装在Visual Studio中。