예제 #1
0
        protected void drpCategory_OnSelectedIndexChanged(object sender, EventArgs e)
        {
            if (drpCategory.SelectedValue.ToSafeInt() == -1)
            {
                return;
            }

            var repo = new CategoryPropRepository();

            drpCategoryProp.DataSource = repo.GetPropHaveDatasourceByCatId(drpCategory.SelectedValue.ToSafeInt());

            drpCategoryProp.DataValueField = "Id";
            drpCategoryProp.DataTextField  = "Caption";

            drpCategoryProp.DataBind();
        }
예제 #2
0
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                BindDrpType();
                BindDrpCategory();

                if (Request.QueryString["Id"] != null)
                {
                    var repo = new CategoryPropRepository();
                    var toBeEditedCatProp = repo.GetById(Request.QueryString["Id"].ToSafeInt());

                    if (toBeEditedCatProp != null)
                    {
                        txtName.Text              = toBeEditedCatProp.Name;
                        txtCaption.Text           = toBeEditedCatProp.Caption;
                        drpType.SelectedValue     = toBeEditedCatProp.Type.ToString();
                        drpCategory.SelectedValue = toBeEditedCatProp.CategoryId.ToString();
                        chkHasDataSource.Checked  = toBeEditedCatProp.HasDatasource;
                    }
                }
            }
        }
예제 #3
0
        private void LoadProps(int catId)
        {
            Session["Props"] = new List <CategoryPropHelper>();

            var repo         = new CategoryPropRepository();
            var props        = repo.GetByCatId(catId);
            var label        = new Label();
            var textBox      = new TextBox();
            var reqValidator = new RequiredFieldValidator();
            var propValues   = new List <CategoryPropValue>();

            HtmlGenericControl divRow, divColSm3, divColSm9;

            foreach (CategoryProp prop in props)
            {
                switch (prop.Type)
                {
                case (int)CategoryPropType.Checkbox:
                    var chk = new CheckBox();
                    chk.Text = prop.Caption;

                    divRow    = GetDivRow();
                    divColSm3 = GetDivColSm(3);
                    divRow.Controls.Add(divColSm3);

                    divColSm9 = GetDivColSm(9);
                    divColSm9.Controls.Add(chk);
                    divRow.Controls.Add(divColSm9);

                    divProps.Controls.Add(divRow);

                    var ph = new CategoryPropHelper(chk, prop.Id);
                    ((List <CategoryPropHelper>)Session["Props"]).Add(ph);
                    break;

                case (int)CategoryPropType.Combo:
                    label      = new Label();
                    label.Text = prop.Caption + " : ";
                    var drp = new DropDownList();
                    drp.Width = 120;
                    drp.ID    = "drp" + DateTime.Now.Ticks;

                    propValues = new CategoryPropValueRepository().GetPropValues(prop.Id);

                    drp.DataSource     = propValues;
                    drp.DataValueField = "Id";
                    drp.DataTextField  = "Value";
                    drp.DataBind();

                    divRow    = GetDivRow();
                    divColSm3 = GetDivColSm(3);

                    divColSm3.Attributes.Add("align", "left");
                    divRow.Controls.Add(divColSm3);
                    divColSm3.Controls.Add(label);

                    divColSm9 = GetDivColSm(9);
                    divColSm9.Controls.Add(drp);
                    divRow.Controls.Add(divColSm9);

                    reqValidator    = new RequiredFieldValidator();
                    reqValidator.ID = "pv" + prop.Id;
                    reqValidator.ControlToValidate = drp.ID;
                    reqValidator.ErrorMessage      = "الزامی";
                    reqValidator.ValidationGroup   = "saveValidation";
                    reqValidator.CssClass          = "propReqValidator";
                    divColSm9.Controls.Add(reqValidator);
                    divProps.Controls.Add(divRow);

                    var phCombo = new CategoryPropHelper(drp, prop.Id);
                    ((List <CategoryPropHelper>)Session["Props"]).Add(phCombo);
                    break;

                case (int)CategoryPropType.Decimal:
                case (int)CategoryPropType.Int:
                case (int)CategoryPropType.String:

                    label      = new Label();
                    label.Text = prop.Caption + " : ";

                    divRow    = GetDivRow();
                    divColSm3 = GetDivColSm(3);

                    divColSm3.Attributes.Add("align", "left");
                    divRow.Controls.Add(divColSm3);
                    divColSm3.Controls.Add(label);

                    textBox       = new TextBox();
                    textBox.Width = 120;
                    textBox.ID    = "textBox" + DateTime.Now.Ticks;

                    divColSm9 = GetDivColSm(9);
                    divColSm9.Controls.Add(textBox);
                    divRow.Controls.Add(divColSm9);

                    reqValidator    = new RequiredFieldValidator();
                    reqValidator.ID = "pv" + prop.Id;
                    reqValidator.ControlToValidate = textBox.ID;
                    reqValidator.ErrorMessage      = "الزامی";
                    reqValidator.ValidationGroup   = "saveValidation";
                    reqValidator.CssClass          = "propReqValidator";
                    divColSm9.Controls.Add(reqValidator);

                    divProps.Controls.Add(divRow);

                    var phText = new CategoryPropHelper(textBox, prop.Id);
                    ((List <CategoryPropHelper>)Session["Props"]).Add(phText);
                    break;

                case (int)CategoryPropType.Radio:
                    label      = new Label();
                    label.Text = prop.Caption + " : ";

                    divRow    = GetDivRow();
                    divColSm3 = GetDivColSm(3);

                    divColSm3.Attributes.Add("align", "left");
                    divRow.Controls.Add(divColSm3);
                    divColSm3.Controls.Add(label);

                    var rb = new RadioButtonList();
                    rb.Width    = 120;
                    rb.CssClass = "propRB";

                    propValues = new CategoryPropValueRepository().GetPropValues(prop.Id);

                    foreach (CategoryPropValue p in propValues)
                    {
                        rb.Items.Add(new ListItem(p.Value));
                    }
                    //todo validation
                    divColSm9 = GetDivColSm(9);
                    divColSm9.Controls.Add(rb);
                    divRow.Controls.Add(divColSm9);

                    divProps.Controls.Add(divRow);

                    var phradio = new CategoryPropHelper(rb, prop.Id);
                    ((List <CategoryPropHelper>)Session["Props"]).Add(phradio);
                    break;
                }

                Session["DivProps"] = divProps;
            }
        }
예제 #4
0
        private void CreateCatProps(int catId)
        {
            Session["CatProps"] = new List <KeyValuePair <int, object> >();

            var repo         = new CategoryPropRepository();
            var props        = repo.GetByCatId(catId);
            var label        = new Label();
            var textBox      = new TextBox();
            var reqValidator = new RequiredFieldValidator();
            var propValues   = new List <CategoryPropValue>();

            HtmlGenericControl divRow, divColSm3Xs3, divColSm6Xs7, divColSm3Xs2;


            foreach (CategoryProp prop in props)
            {
                switch (prop.Type)
                {
                case (int)CategoryPropType.Checkbox:
                    var chk = new CheckBox();
                    chk.Text = prop.Caption;
                    chk.ID   = "chk" + prop.Id;

                    ((List <KeyValuePair <int, object> >)Session["CatProps"]).Add(new KeyValuePair <int, object>(prop.Id, chk));

                    divRow       = GetDivRow();
                    divColSm3Xs3 = GetDivColSm3Xs3();
                    divRow.Controls.Add(divColSm3Xs3);

                    divColSm6Xs7 = GetDivColSm6Xs7();
                    divColSm6Xs7.Controls.Add(chk);
                    divRow.Controls.Add(divColSm6Xs7);

                    divProps.Controls.Add(divRow);

                    break;

                case (int)CategoryPropType.Combo:
                    label      = new Label();
                    label.Text = prop.Caption + " : ";
                    var drp = new DropDownList();
                    //drp.Width = 120;
                    drp.ID = "drp" + prop.Id;

                    ((List <KeyValuePair <int, object> >)Session["CatProps"]).Add(new KeyValuePair <int, object>(prop.Id, drp));
                    propValues = new CategoryPropValueRepository().GetPropValues(prop.Id);

                    drp.Attributes.Add("class", "form-control padding0");
                    drp.DataSource     = propValues;
                    drp.DataValueField = "Id";
                    drp.DataTextField  = "Value";
                    drp.DataBind();

                    divRow       = GetDivRow();
                    divColSm3Xs3 = GetDivColSm3Xs3();

                    divColSm3Xs3.Attributes.Add("align", "left");
                    divRow.Controls.Add(divColSm3Xs3);
                    divColSm3Xs3.Controls.Add(label);

                    divColSm6Xs7 = GetDivColSm6Xs7();
                    divColSm6Xs7.Controls.Add(drp);
                    divRow.Controls.Add(divColSm6Xs7);

                    reqValidator    = new RequiredFieldValidator();
                    reqValidator.ID = "pv" + prop.Id;
                    reqValidator.ControlToValidate = drp.ID;
                    reqValidator.ErrorMessage      = "الزامی";
                    reqValidator.ValidationGroup   = "saveValidation";
                    reqValidator.CssClass          = "propReqValidator";
                    divColSm6Xs7.Controls.Add(reqValidator);
                    divProps.Controls.Add(divRow);
                    break;

                case (int)CategoryPropType.Decimal:
                case (int)CategoryPropType.Int:
                case (int)CategoryPropType.String:

                    label      = new Label();
                    label.Text = prop.Caption + " : ";

                    divRow       = GetDivRow();
                    divColSm3Xs3 = GetDivColSm3Xs3();

                    divColSm3Xs3.Attributes.Add("align", "left");
                    divRow.Controls.Add(divColSm3Xs3);
                    divColSm3Xs3.Controls.Add(label);

                    textBox = new TextBox();
                    //textBox.Width = 120;
                    textBox.ID = "txt" + prop.Id;
                    ((List <KeyValuePair <int, object> >)Session["CatProps"]).Add(new KeyValuePair <int, object>(prop.Id, textBox));

                    textBox.Attributes.Add("class", "form-control");

                    divColSm6Xs7 = GetDivColSm6Xs7();
                    divColSm6Xs7.Controls.Add(textBox);
                    divRow.Controls.Add(divColSm6Xs7);

                    divColSm3Xs2 = GetDivColSm3Xs2();

                    reqValidator    = new RequiredFieldValidator();
                    reqValidator.ID = "pv" + prop.Id;
                    reqValidator.ControlToValidate = textBox.ID;
                    reqValidator.ErrorMessage      = "الزامی";
                    reqValidator.ValidationGroup   = "saveValidation";
                    reqValidator.CssClass          = "propReqValidator";
                    divColSm3Xs2.Controls.Add(reqValidator);
                    divRow.Controls.Add(divColSm3Xs2);

                    divProps.Controls.Add(divRow);

                    break;

                case (int)CategoryPropType.Radio:
                    label      = new Label();
                    label.Text = prop.Caption + " : ";

                    divRow       = GetDivRow();
                    divColSm3Xs3 = GetDivColSm3Xs3();

                    divColSm3Xs3.Attributes.Add("align", "left");
                    divRow.Controls.Add(divColSm3Xs3);
                    divColSm3Xs3.Controls.Add(label);

                    var rb = new RadioButtonList();
                    rb.ID = "rb" + prop.Id;
                    ((List <KeyValuePair <int, object> >)Session["CatProps"]).Add(new KeyValuePair <int, object>(prop.Id, rb));
                    //rb.Width = 120;
                    rb.CssClass = "propRB";

                    propValues = new CategoryPropValueRepository().GetPropValues(prop.Id);

                    foreach (CategoryPropValue p in propValues)
                    {
                        rb.Items.Add(new ListItem(p.Value, p.Id.ToString()));
                    }

                    //todo validation
                    divColSm6Xs7 = GetDivColSm6Xs7();
                    divColSm6Xs7.Controls.Add(rb);
                    divRow.Controls.Add(divColSm6Xs7);

                    divProps.Controls.Add(divRow);
                    break;
                }

                Session["DivProps"] = divProps;
            }
        }