Javascript Lightswitch HTML客户端:如何重新呈现项(重新执行postRender回调)

Javascript Lightswitch HTML客户端:如何重新呈现项(重新执行postRender回调),javascript,html,visual-studio,visual-studio-lightswitch,Javascript,Html,Visual Studio,Visual Studio Lightswitch,我正在使用Visual Studio 2013开发lightswitch HTML客户端。我有一个屏幕,屏幕上有一个客户平铺列表,其中标记为“premium”(客户实体的布尔字段)的客户以橙色背景突出显示,而所有其他客户保持默认灰色背景 此外,该客户的磁贴底部会出现一个标签“premium” 在屏幕的代码隐藏文件中的“CustomerRow_postRender”处理程序函数中以橙色突出显示“premium”客户,在该函数中我检查premium字段,然后将css类分配给互动程序 我的问题: 当我

我正在使用Visual Studio 2013开发lightswitch HTML客户端。我有一个屏幕,屏幕上有一个客户平铺列表,其中标记为“premium”(客户实体的布尔字段)的客户以橙色背景突出显示,而所有其他客户保持默认灰色背景

此外,该客户的磁贴底部会出现一个标签“premium”

在屏幕的代码隐藏文件中的“CustomerRow_postRender”处理程序函数中以橙色突出显示“premium”客户,在该函数中我检查premium字段,然后将css类分配给互动程序

我的问题

当我编辑客户并通过DetailsScreen弹出窗口将其设置为“高级”时,我会将其保存并返回到我的平铺列表

编辑后,标签“premium”会出现在customers磁贴中,这很好。但背景不会变为橙色。我发现“postRender”功能在通过弹出屏幕编辑后不会重新执行

这个功能对我来说是精心设计的。但该怎么办呢?我当前的解决方法是重新加载浏览器页面(F5)-然后将平铺呈现为橙色


感谢您的提示。

为了使其正常工作,您需要在表行的postRender例程中配置数据绑定更改处理程序。数据绑定更改处理程序将监视决定突出显示的字段值的任何更新,并可按以下方式实现:-

myapp.BrowseCustomers.CustomerRow_postRender = function (element, contentItem) {
    contentItem.dataBind("value.IsPremium", function (value) {
        if (value) {
            $(element).css("background", "orange");
        } else {
            $(element).css("background", "transparent");
        }
    });
};
免费提供的“LightSwitch Mobile Business Apps Successly”一书中有一个很好的章节涵盖了这一领域(p63+“自定义控件:后期渲染”)

如果你还没有读过简的好书,我强烈建议你“挑选”一本,因为这是一个很好的资源