diff --git a/ui/src/views/form/FormDevExpress.tsx b/ui/src/views/form/FormDevExpress.tsx index 716c8c46..f309888f 100644 --- a/ui/src/views/form/FormDevExpress.tsx +++ b/ui/src/views/form/FormDevExpress.tsx @@ -24,20 +24,61 @@ const FormDevExpress = (props: { const { listFormCode, isSubForm, mode, refForm, formData, formItems, setFormData } = props const formDataRef = useRef(formData) + const formItemsRef = useRef(formItems) + useEffect(() => { formDataRef.current = formData }, [formData]) + useEffect(() => { + formItemsRef.current = formItems + }, [formItems]) + + // formItems değiştiğinde (özellikle cascading alanlar için) editörlerin dataSource'larını güncelle + useEffect(() => { + if (!refForm.current?.instance) return + + const allItems = formItems.flatMap((group) => (group.items as SimpleItemWithColData[]) || []) + + allItems.forEach((item) => { + if (item.colData?.lookupDto?.dataSourceType && item.editorOptions?.dataSource) { + try { + const editor = refForm.current?.instance.getEditor(item.dataField!) + if (editor) { + editor.option('dataSource', item.editorOptions.dataSource) + } + } catch (err) { + // Editor henüz oluşmamış olabilir, sessizce devam et + console.debug('Editor update skipped for', item.dataField, err) + } + } + }) + }, [formItems]) + return (