using System; using System.Data; using System.Configuration; using System.Collections; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; public partial class Admin_EditCategory : WebBlocks.AdministrativePage { public int CategoryID { get { return (ViewState["CategoryID"] == null ? 0 : (int)ViewState["CategoryID"]); } set { ViewState["CategoryID"] = value; } } protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) { if (Request["CategoryID"] != null) CategoryID = Int32.Parse(Request["CategoryID"]); if (Request["ParentCategoryID"] != null) ddlParentCategory.SelectedValue = Request["ParentCategoryID"]; btnDelete.Visible = (CategoryID > 0); BindParentCategories(); if (CategoryID > 0) BindData(); } } private void BindParentCategories() { DataTable dt = Database.Categories_GetAll(); ddlParentCategory.DataSource = dt; ddlParentCategory.DataBind(); ddlParentCategory.Items.Insert(0, new ListItem("None", "0")); } private void BindData() { DataRow dr = Database.Categories_Get(CategoryID); litCategoryID.Text = dr["CategoryID"].ToString(); txtCategoryName.Text = (string)dr["CategoryName"]; ddlParentCategory.SelectedValue = dr["ParentCategoryID"].ToString(); chkUseCategoryLanding.Checked = (bool)dr["UseCategoryLanding"]; } protected void btnCancelAddItem_Click(object sender, EventArgs e) { Response.Redirect("StorePages.aspx?CategoryID=" + CategoryID); } protected void btnAddItem_Click(object sender, EventArgs e) { // figure out the canonical name int ParentCategoryID = Int32.Parse(ddlParentCategory.SelectedValue); string CanonicalName = txtCategoryName.Text; if (ParentCategoryID > 0) { DataRow dr = Database.Categories_Get(ParentCategoryID); CanonicalName = (string)dr["CanonicalName"] + ":" + CanonicalName; } if (CategoryID == 0) CategoryID = Database.Categories_Add(ParentCategoryID, txtCategoryName.Text, chkUseCategoryLanding.Checked, CanonicalName); else Database.Categories_Update(CategoryID, ParentCategoryID, txtCategoryName.Text, chkUseCategoryLanding.Checked, CanonicalName); Database.System_RebuildProductCounts(); Response.Redirect("StorePages.aspx?CategoryID=" + CategoryID.ToString()); } protected void btnDelete_Click(object sender, EventArgs e) { // for future reference DataRow dr = Database.Categories_Get(CategoryID); int ParentCategoryID = (int)dr["ParentCategoryID"]; Database.CategorySelectorMap_DeleteByCategory(CategoryID); Database.Categories_Delete(CategoryID); Response.Redirect("StorePages.aspx?CategoryID=" + ParentCategoryID); } }