예제 #1
0
        public static bool ProcessControlsValue(DataAccessMode daMode, Dictionary <string, Control> dicControls, DataRow dr, ControlDataHandler <string> preHandler, Dictionary <CheckState, string> dicCheckStateData, Dictionary <bool, string> dicBoolData, Func <object, string, string> propSelector, char splitMulti)
        {
            string     key   = string.Empty;
            string     value = string.Empty;
            Control    ctrl  = null;
            DataColumn col   = null;

            foreach (var kvp in dicControls)
            {
                key  = kvp.Key;
                ctrl = kvp.Value;
                if (null == ctrl || !dr.Table.Columns.Contains(key))
                {
                    continue;
                }
                col   = dr.Table.Columns[key];
                value = dr[key].ToString();
                ProcessControlValue(daMode, ctrl, ref value, preHandler, dicCheckStateData, dicBoolData, InnerPropSelector, s_splitMulti);
                if (daMode == DataAccessMode.GetData && !col.ReadOnly)
                {
                    if (string.IsNullOrEmpty(value) && !col.DefaultValue.Equals(DBNull.Value))
                    {
                        dr[key] = col.DefaultValue;
                    }
                    else
                    {
                        dr[key] = value;
                    }
                }
            }
            return(true);
        }
예제 #2
0
 public static bool ProcessControlsValue(DataAccessMode daMode, Dictionary <string, Control> dicControls, DataRow dr, ControlDataHandler <string> preHandler)
 {
     return(ProcessControlsValue(daMode, dicControls, dr, preHandler, s_dicCheckStateData, s_dicBoolStrData, InnerPropSelector, s_splitMulti));
 }
예제 #3
0
        public static bool ProcessControlsValue(DataAccessMode daMode, Dictionary <string, Control> dicControls, Dictionary <string, string> dicValues, ControlDataHandler <string> preHandler, Dictionary <CheckState, string> dicCheckStateData, Dictionary <bool, string> dicBoolData, Func <object, string, string> propSelector, char splitMulti)
        {
            string  key   = string.Empty;
            string  value = string.Empty;
            Control ctrl  = null;

            foreach (var kvp in dicControls)
            {
                key  = kvp.Key;
                ctrl = kvp.Value;
                if (null == ctrl)
                {
                    continue;
                }
                if (!dicValues.TryGetValue(key, out value))
                {
                    value = string.Empty;
                }
                ProcessControlValue(daMode, ctrl, ref value, preHandler, s_dicCheckStateData, s_dicBoolStrData, InnerPropSelector, s_splitMulti);
                dicValues[key] = value;
            }
            return(true);
        }
예제 #4
0
 public static bool ProcessControlValue(DataAccessMode daMode, Control control, ref string value, ControlDataHandler <string> preHandler, Dictionary <CheckState, string> dicCheckStateData, Dictionary <bool, string> dicBoolData, Func <object, string, string> propSelector, char splitMulti)
 {
     if (null != preHandler && preHandler(daMode, control, ref value))
     {
         return(true);
     }
     if (control is Label ||
         control is TextBox ||
         control is MaskedTextBox ||
         control is GroupBox)
     {
         return(ProcessControlText(daMode, control, ref value));
     }
     if (control is NumericUpDown)
     {
         return(ProcessNumericUpDownValue(daMode, (NumericUpDown)control, ref value));
     }
     if (control is DateTimePicker)
     {
         return(ProcessDateTimePickerValue(daMode, (DateTimePicker)control, ref value));
     }
     if (control is CheckBox)
     {
         return(ProcessCheckBoxValue(daMode, (CheckBox)control, ref value, dicCheckStateData, dicBoolData));
     }
     if (control is ComboBox)
     {
         return(ProcessComboBoxCore(daMode, true, (ComboBox)control, ref value, propSelector));
     }
     if (control is CheckedListBox)
     {
         return(ProcessCheckedListBoxCore(daMode, true, (CheckedListBox)control, ref value, propSelector, splitMulti));
     }
     return(true);
 }
예제 #5
0
 public static bool ProcessControlValue(DataAccessMode daMode, Control control, ref string value, ControlDataHandler <string> preHandler)
 {
     return(ProcessControlValue(daMode, control, ref value, preHandler, s_dicCheckStateData, s_dicBoolStrData, InnerPropSelector, s_splitMulti));
 }
예제 #6
0
        public static bool ProcessControlsValueCore <T>(DataAccessMode daMode, Dictionary <string, Control> dicControls, Dictionary <string, T> dicValues, ControlDataHandler <T> handler)
        {
            string  key   = string.Empty;
            T       value = default(T);
            Control ctrl  = null;

            foreach (var kvp in dicControls)
            {
                key  = kvp.Key;
                ctrl = kvp.Value;
                if (null == ctrl)
                {
                    continue;
                }
                dicValues.TryGetValue(key, out value);
                if (null != handler)
                {
                    handler(daMode, ctrl, ref value);
                }
                dicValues[key] = value;
            }
            return(true);
        }