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(); }
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; } } } }
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; } }
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; } }