在模型驱动应用程序中修改表单中的文本

Modify text in a Form in a model-driven app

我们在模型驱动应用程序的表单中确实有一个选择数组。在选择创建时window我只能输入纯文本

我现在想根据文本修改文本颜色,比如文本是 'Red' 我想将文本颜色更改为红色 and/or 一个红色圆圈图像,使其更显眼.

我创建了一个 webresource jscript,我可以使用它在表单的 onload 事件中读取文本

var formContext = test.getFormContext();
var text= formContext.getAttribute("il_statuscolor").getText();
console.log(text);

这很好用,但我找不到任何设置文本的函数。

有什么想法吗?

编辑: 澄清一下,它在视图中工作得很好(基于本教程:https://docs.microsoft.com/en-us/powerapps/maker/data-platform/display-custom-icons-instead)但我需要它的形式。

我们仅针对网格提供这种方法。为了在表单级别上达到相同的效果,我们将更早地使用 HTML 网络资源。最新推荐的方法是 PCF 控制。

从窗体上下文中获取文本并在 PCF 控件中设置字体颜色。你可以找到类似的控件here.

尽管 Arun Vinoth 的回答为我指明了正确的方向,我对此表示感谢,但这是一个完整的答案 对于以执行上下文作为第一个参数的表单,您需要将 'form_onload' 调用为 'onload'。

function form_onload(executionContext) {
    var formContext = executionContext.getFormContext();
    var wrControl = formContext.getControl("WebResource_Ampelfarbe");
    if (wrControl) {
        wrControl.getContentWindow().then(
            function (contentWindow) {
                contentWindow.showAmpelfarbe(Xrm, formContext);
            }
        )
    }
}

其中 'WebResource_Ampelfarbe' 需要是您的网络资源的名称,'showAmpelfarbe' 是您要调用的 html 网络资源中的函数。

以下是选项卡 'source' 的 html 网络资源的内容,它将根据内容创建一个彩色框。

<html><head>
<script>
function showAmpelfarbe(xrm, formContext) {
    // Optionally set Xrm and formContext as global variables on the page.
    window.Xrm = xrm;
    window._formContext = formContext;
      
    // Add script logic here that uses xrm or the formContext.
    var ampel_value = formContext.getAttribute("il_statuscolor").getValue();
    ampel_color = '';
    if (ampel_value == 100000000) {
        ampel_color = "red";
    }else if (ampel_value == 100000001) {
        ampel_color = "yellow";
    }else if (ampel_value == 100000002) {
        ampel_color = "green";
    }
    document.body.style.backgroundColor = ampel_color;
}

</script>

<meta></head><body onfocusout="parent.setEmailRange();" style="overflow-wrap: break-word;">