我在桌面上使用DevExtreme
进行CRUD
操作。
我正在使用Form
编辑模式,该模式包含两个SelectBox
个项目:
items.AddSimpleFor(m => m.Score).Editor(editor => editor.SelectBox().DataSource(entityTypes).DisplayExpr("Name").ValueExpr("Score"));
items.AddSimpleFor(m => m.CreatorId).Editor(editor => editor.SelectBox());
我需要根据第一个中的选定值更新第二个SelectBox
内的值。
正常HTML
"我能够获得对这些元素的引用并相应地设置回调,但现在,在configurator
的{{1}}定义中,我无法做到。
我如何获得这些参考?设置form
的{{1}}属性无效...
答案 0 :(得分:0)
DevExtreme不允许轻易引用其他表单的项目甚至父表单。您可以使用jQuery的closest方法获取父表单的元素,然后使用getEditor获取第二个选择框。
.Editor(editor => editor.SelectBox().DataSource(entityTypes).DisplayExpr("Name").ValueExpr("Score")
.OnSelectionChanged(
@<text>
function({element, selectedItem}) {
const form = element.closest(".dx-form").dxForm("instance")
// get the second select box instance by name
const creatorSelectBox = form.getEditor("CreatorId")
// selectedItem.Score here holds the value of the first select box
}
</text>));