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



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

我现在想根据文本修改文本颜色,比如如果文本是"红色",我想将文本颜色更改为红色和/或红色圆圈图像,使其更明显。

我已经创建了一个webresource jscript,我可以在onload事件中读取文本的形式

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

这个可以正常工作,但是我找不到任何函数来设置文本。

任何想法?

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

我们只对网格使用这种方法。为了在表单级别上达到相同的效果,我们将在前面使用HTML web资源。最新推荐的方法是PCF控制。

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

尽管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'需要是你的web资源的名称,'showAmpelfarbe'是你想要调用的html web资源中的函数。

下面是标签'source'的html web资源的内容,它将根据内容创建一个彩色框。

<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;">

相关内容

  • 没有找到相关文章

最新更新