Exemplo n.º 1
0
        /// <summary>
        /// DataRow 의 값을 각각의 LayoutControlItem 의 Control EditValue값에 채워 넣습니다.
        /// </summary>
        /// <param name="row">DataRow</param>
        /// <param name="lcgs">LayoutControlGroup 배열</param>
        public static void BindingByDataRow(this LayoutControl lc, DataRow row, params LayoutControlGroup[] lcgs)
        {
            if (lcgs == null || lcgs.Length == 0)
            {
                lcgs = lc.Items.OfType <LayoutControlGroup>().ToArray();
            }
            foreach (LayoutControlGroup lcg in lcgs)
            {
                foreach (LayoutControlGroup group in lcg.Items.OfType <LayoutControlGroup>().Where(x => x.Items.Count > 0))
                {
                    lc.BindingByDataRow(row, group);
                }

                foreach (LayoutControlItem item in lcg.Items.OfType <LayoutControlItem>().Where(x => x.Control != null))
                {
                    var columnName = item.GetFieldNameByControlNoPattern();

                    if (!string.IsNullOrEmpty(columnName) && row.Table.Columns.Contains(columnName))
                    {
                        item.SetControlValue(row.GetValue(columnName), row.GetValue(columnName.Substring(0, columnName.LastIndexOf('_')) + "_NM").ToStringNullToEmpty());
                    }
                }
            }
        }