示例#1
0
    public void BuildControl()
    {
        if (!IsPostBack)
        {
            RecordsDataEdit.Visible = false;
            RecordsDataView.BuildTable();
        }
        else
        {
            bool viewTable = true;
            bool tryEntry  = false;
            foreach (string key in Request.Form)
            {
                if (key.EndsWith("addButton"))
                {
                    viewTable = false;
                    break;
                }
                else if (Regex.Match(key, "edit([0-9]+)$").Success)
                {
                    viewTable   = false;
                    this.editid = Regex.Match(key, "edit([0-9]+)$").Groups[1].ToString();
                    break;
                }
                else if (key.EndsWith("editRow"))
                {
                    viewTable = false;
                    tryEntry  = true;
                    break;
                }
            }

            if (viewTable)
            {
                RecordsDataEdit.Visible = false;
                RecordsDataView.Visible = true;
                RecordsDataView.BuildTable();
            }
            else
            {
                if (editid != "")
                {
                    RecordsDataEdit.SetID(editid);
                }
                RecordsDataView.Visible = false;
                RecordsDataEdit.Visible = true;
                RecordsDataEdit.PassData(Request.Form);
                if (tryEntry)
                {
                    if (RecordsDataEdit.IsValid())
                    {
                        Dictionary <string, string> param = new Dictionary <string, string>();
                        bool update = false;
                        foreach (string key in Request.Form)
                        {
                            foreach (KeyValuePair <string, EditMetadata> pair in fieldTypes)
                            {
                                if (key.EndsWith(pair.Key))
                                {
                                    if (fieldTypes[pair.Key].GetValidationType() != EditMetadata.FieldTypes.ReadOnly)
                                    {
                                        param.Add(pair.Key, Request.Form[key]);
                                    }
                                    if (fieldTypes[pair.Key].GetValidationType() == EditMetadata.FieldTypes.ID)
                                    {
                                        if (Request.Form[key] != "")
                                        {
                                            update = true;
                                        }
                                    }
                                }
                            }
                        }
                        function.Invoke(param, update);
                        Response.Redirect(Request.RawUrl);
                    }
                }
                RecordsDataEdit.BuildForm();
            }
        }
    }
示例#2
0
 public void SetEditMetadata(Dictionary <string, EditMetadata> fieldTypes)
 {
     this.fieldTypes = fieldTypes;
     RecordsDataEdit.SetFieldTypes(fieldTypes);
 }
示例#3
0
 public void SetTableName(string table)
 {
     RecordsDataView.SetTableName(table);
     RecordsDataEdit.SetTableName(table);
 }
示例#4
0
 public void AddValidationMethod(string field, Func <object, string> function)
 {
     RecordsDataEdit.AddValidationMethod(field, function);
 }
示例#5
0
 public void BindEditData(ArrayList data)
 {
     RecordsDataEdit.BindEditData(data);
 }