如何为SurveyJS矩阵下拉题的指定单元格设置默认值
解决SurveyJS MatrixDropdown指定单元格设置默认值的问题
正确配置方案
要仅为"Cat 1"行的"Base year value"单元格设置默认值,需修正列定义中的defaultValueExpression逻辑,通过判断当前行的value来精准控制默认值的应用范围。
修正后的列配置
将"Base year value"列的配置修改为如下内容:
{ "name": "51f0a4d0-4713-464c-b913-8d08a0cec24c", "title": "Base year value", "cellType": "text", "useDisplayValuesInDynamicTexts": false, "defaultValueExpression": "iif({row.value} = 'c28454f6-4a7e-4ec7-8882-307a1009b1cb', '1000', '')", "placeholder": "decimal places: 3" }
逻辑说明
{row.value}:SurveyJS中用于引用当前矩阵行value属性的内置变量,此处对应Cat1行的唯一标识c28454f6-4a7e-4ec7-8882-307a1009b1cbiif(条件, 满足时的值, 不满足时的值):SurveyJS的条件表达式函数,仅当当前行是Cat1时设置默认值为1000,其他行该单元格保持为空
完整问卷JSON示例
替换后的完整问卷配置如下:
{ "pages": [ { "name": "performance", "elements": [ { "type": "panel", "name": "7.5Panel", "elements": [ { "type": "matrixdropdown", "name": "1f901b6a-4201-49ee-8169-599c1a8b9f21", "title": "Provide your base year", "description": "A meaningful data", "hideNumber": true, "columns": [ { "name": "ed2e7ac8-f1c6-470d-8c57-11da62471247", "title": "Base year end", "cellType": "text", "inputType": "date" }, { "name": "51f0a4d0-4713-464c-b913-8d08a0cec24c", "title": "Base year value", "cellType": "text", "useDisplayValuesInDynamicTexts": false, "defaultValueExpression": "iif({row.value} = 'c28454f6-4a7e-4ec7-8882-307a1009b1cb', '1000', '')", "placeholder": "decimal places: 3" } ], "rows": [ { "value": "c28454f6-4a7e-4ec7-8882-307a1009b1cb", "text": "Cat 1" }, { "value": "c6a2c79b-c8bf-465d-96ca-cd2467815c5b", "text": "Cat 2" } ] } ] } ] } ], "showQuestionNumbers": "off" }
效果验证
加载该问卷后,"Cat 1"行的"Base year value"单元格会自动填充默认值1000,其他行的该单元格则为空,完全符合需求。
内容的提问来源于stack exchange,提问作者user25710513
相关产品推荐
相关产品推荐

