protected void VariantGrid_ItemCreated(object sender, RepeaterItemEventArgs e) { if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) { PlaceHolder phVariantRow = e.Item.FindControl("phVariantRow") as PlaceHolder; if (phVariantRow != null) { ProductVariant variant = (ProductVariant)e.Item.DataItem; int variantIndex = _VariantManager.IndexOf(variant); string optionList = variant.OptionList; StringBuilder rowBuilder = new StringBuilder(); //DRAW THE DATA ROW string rowClass = (e.Item.ItemType == ListItemType.Item) ? "oddRow" : "evenRow"; rowBuilder.Append("<tr class=\"" + rowClass + "\">\r\n"); rowBuilder.Append("<td align=\"center\">" + (variantIndex + 1) + "</td>\r\n"); rowBuilder.Append("<td>" + variant.VariantName + "</td>\r\n"); rowBuilder.Append("<td>"); //BUILD TABLE OF EXISTING DIGITAL GOODS IList <ProductDigitalGood> variantDigitalGoods = ProductDigitalGoodDataSource.LoadForVariant(this.ProductId, optionList); if (variantDigitalGoods.Count > 0) { phVariantRow.Controls.Add(new LiteralControl(rowBuilder.ToString())); foreach (ProductDigitalGood pdg in variantDigitalGoods) { string digitalGoodName = pdg.DigitalGood.Name; string linkedName = string.Format("<a href=\"../../DigitalGoods/EditDigitalGood.aspx?CategoryId={0}&ProductId={1}&DigitalGoodId={2}\">" + digitalGoodName + "</a>", CategoryId, ProductId, pdg.DigitalGoodId); phVariantRow.Controls.Add(new LiteralControl("<b>" + linkedName + "</b> " + GetFileSize(pdg.DigitalGood) + " ")); HyperLink downloadLink = new HyperLink(); downloadLink.NavigateUrl = "../../DigitalGoods/Download.ashx?DigitalGoodId=" + pdg.DigitalGoodId; downloadLink.EnableViewState = false; Image downloadIcon = new Image(); downloadIcon.AlternateText = "Download"; downloadIcon.ToolTip = "Download"; downloadIcon.SkinID = "DownloadIcon"; downloadIcon.EnableViewState = false; downloadLink.Controls.Add(downloadIcon); phVariantRow.Controls.Add(downloadLink); ImageButton detachButton = new ImageButton(); detachButton.ID = "D" + pdg.Id.ToString(); detachButton.AlternateText = "Delete"; detachButton.ToolTip = "Delete"; detachButton.SkinID = "DeleteIcon"; detachButton.Click += new ImageClickEventHandler(detachButton_Click); detachButton.OnClientClick = string.Format("return confirm(\"Are you sure you want to remove {0} from this product?\")", digitalGoodName); detachButton.EnableViewState = false; phVariantRow.Controls.Add(detachButton); phVariantRow.Controls.Add(new LiteralControl("<br />")); } rowBuilder = new StringBuilder(); } rowBuilder.Append("<a href=\"AttachDigitalGood.aspx?ProductId=" + this.ProductId + "&Options=" + Server.UrlEncode(EncryptionHelper.EncryptAES(optionList)) + "\" class=\"button\">Add</a>"); rowBuilder.Append("</td>\r\n"); /* * rowBuilder.Append("<td>"); * rowBuilder.Append("<a href=\"AttachDigitalGood.aspx?ProductId=" + this.ProductId + "&Options=" + Server.UrlEncode(EncryptionHelper.EncryptAES(optionList)) + "\" Title=\"Attach Digital Good\">"); * phVariantRow.Controls.Add(new LiteralControl(rowBuilder.ToString())); * Image addIcon = new Image(); * addIcon.SkinID = "AddIcon"; * phVariantRow.Controls.Add(addIcon); * rowBuilder = new StringBuilder(); * rowBuilder.Append("</a></td>\r\n"); * rowBuilder.Append("</tr>\r\n"); */ phVariantRow.Controls.Add(new LiteralControl(rowBuilder.ToString())); } } }
protected void VariantGrid_ItemCreated(object sender, RepeaterItemEventArgs e) { // GET THE ICON PATH if (string.IsNullOrEmpty(_IconPath)) { _IconPath = AbleCommerce.Code.PageHelper.GetAdminThemeIconPath(this.Page); } if (e.Item.ItemType == ListItemType.Header) { PlaceHolder phVariantHeader = e.Item.FindControl("phVariantHeader") as PlaceHolder; if (phVariantHeader != null) { StringBuilder headerBuilder = new StringBuilder(); if (names.Contains("SKU")) { headerBuilder.Append("<th>SKU</th>"); } if (names.Contains("GTIN")) { headerBuilder.Append("<th>GTIN</th>"); } if (names.Contains("Price")) { headerBuilder.Append("<th>Price</th>"); } if (names.Contains("Retail")) { headerBuilder.Append("<th>Retail</th>"); } if (names.Contains("Model")) { headerBuilder.Append("<th>Model #</th>"); } if (names.Contains("Dimensions")) { headerBuilder.Append("<th>Dimensions</th>"); } if (names.Contains("HandlingCharges")) { headerBuilder.Append("<th>Special Handling Charges</th>"); } if (names.Contains("Weight")) { headerBuilder.Append("<th>Weight</th>"); } if (names.Contains("COGS")) { headerBuilder.Append("<th>COGS</th>"); } if (names.Contains("Available")) { headerBuilder.Append("<th>Available</th>"); } if (_ShowInventory) { if (names.Contains("InStock")) { headerBuilder.Append("<th>In Stock</th>"); } if (names.Contains("Availability")) { headerBuilder.Append("<th>Availability Date</th>"); } if (names.Contains("LowStock")) { headerBuilder.Append("<th>Low Stock</th>"); } } if (names.Contains("Image")) { headerBuilder.Append("<th>Image</th>"); } if (names.Contains("Thumbnail")) { headerBuilder.Append("<th>Thumbnail</th>"); } if (names.Contains("Icon")) { headerBuilder.Append("<th>Icon</th>"); } phVariantHeader.Controls.Add(new LiteralControl(headerBuilder.ToString())); } } if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) { PlaceHolder phVariantRow = e.Item.FindControl("phVariantRow") as PlaceHolder; if (phVariantRow != null) { ProductVariant variant = (ProductVariant)e.Item.DataItem; int variantIndex = _VariantManager.IndexOf(variant); StringBuilder rowBuilder = new StringBuilder(); string skuKey = "V_" + variantIndex.ToString() + "S"; string gtinKey = "V_" + variantIndex.ToString() + "G"; string priceKey = "V_" + variantIndex.ToString() + "P"; string retailKey = "V_" + variantIndex.ToString() + "RT"; string modelKey = "V_" + variantIndex.ToString() + "M"; string lengthKey = "V_" + variantIndex.ToString() + "L"; string widthKey = "V_" + variantIndex.ToString() + "WI"; string heightKey = "V_" + variantIndex.ToString() + "H"; string handlingChargesKey = "V_" + variantIndex.ToString() + "SH"; string priceModKey = "V_" + variantIndex.ToString() + "PM"; string weightKey = "V_" + variantIndex.ToString() + "W"; string weightModKey = "V_" + variantIndex.ToString() + "WM"; string cogsKey = "V_" + variantIndex.ToString() + "C"; string availKey = "V_" + variantIndex.ToString() + "A"; string instockKey = "V_" + variantIndex.ToString() + "I"; string availDateKey = "V_" + variantIndex.ToString() + "AD"; string restockKey = "V_" + variantIndex.ToString() + "R"; string imageKey = "V_" + variantIndex.ToString() + "IMG"; string thumbKey = "V_" + variantIndex.ToString() + "THU"; string iconKey = "V_" + variantIndex.ToString() + "ICO"; //CHECK IF THIS VARIANT IS IN FORM POST if (_FormValues.Any(v => v.Key.StartsWith("V_" + variantIndex.ToString()))) { //UPDATE THE VALUES BASED ON THE FORM POST if (_FormValues.ContainsKey(skuKey)) { variant.Sku = SafeTryGetValue(_FormValues, skuKey); } if (_FormValues.ContainsKey(gtinKey)) { variant.GTIN = SafeTryGetValue(_FormValues, gtinKey); } if (_FormValues.ContainsKey(priceKey)) { variant.Price = AlwaysConvert.ToDecimal(SafeTryGetValue(_FormValues, priceKey)); } if (_FormValues.ContainsKey(retailKey)) { variant.MSRP = AlwaysConvert.ToDecimal(SafeTryGetValue(_FormValues, retailKey)); } if (_FormValues.ContainsKey(priceModKey)) { variant.PriceModeId = AlwaysConvert.ToByte(SafeTryGetValue(_FormValues, priceModKey)); } if (_FormValues.ContainsKey(modelKey)) { variant.ModelNumber = SafeTryGetValue(_FormValues, modelKey); } if (_FormValues.ContainsKey(lengthKey)) { variant.Length = AlwaysConvert.ToDecimal(SafeTryGetValue(_FormValues, lengthKey)); } if (_FormValues.ContainsKey(widthKey)) { variant.Width = AlwaysConvert.ToDecimal(SafeTryGetValue(_FormValues, widthKey)); } if (_FormValues.ContainsKey(heightKey)) { variant.Height = AlwaysConvert.ToDecimal(SafeTryGetValue(_FormValues, heightKey)); } if (_FormValues.ContainsKey(handlingChargesKey)) { variant.HandlingCharges = AlwaysConvert.ToDecimal(SafeTryGetValue(_FormValues, handlingChargesKey)); } if (_FormValues.ContainsKey(weightKey)) { variant.Weight = AlwaysConvert.ToDecimal(SafeTryGetValue(_FormValues, weightKey)); } if (_FormValues.ContainsKey(weightModKey)) { variant.WeightModeId = AlwaysConvert.ToByte(SafeTryGetValue(_FormValues, weightModKey)); } if (_FormValues.ContainsKey(cogsKey)) { variant.CostOfGoods = AlwaysConvert.ToDecimal(SafeTryGetValue(_FormValues, cogsKey)); } if (_FormValues.ContainsKey(availKey)) { variant.Available = (SafeTryGetValue(_FormValues, availKey) == "1,0"); } if (_FormValues.ContainsKey(imageKey)) { variant.ImageUrl = SafeTryGetValue(_FormValues, imageKey); } if (_FormValues.ContainsKey(thumbKey)) { variant.ThumbnailUrl = SafeTryGetValue(_FormValues, thumbKey); } if (_FormValues.ContainsKey(iconKey)) { variant.IconUrl = SafeTryGetValue(_FormValues, iconKey); } if (_ShowInventory) { if (_FormValues.ContainsKey(instockKey)) { variant.InStock = AlwaysConvert.ToInt(SafeTryGetValue(_FormValues, instockKey)); } if (_FormValues.ContainsKey(availDateKey)) { variant.AvailabilityDate = AlwaysConvert.ToDateTime(SafeTryGetValue(_FormValues, availDateKey), DateTime.MinValue); } if (_FormValues.ContainsKey(restockKey)) { variant.InStockWarningLevel = AlwaysConvert.ToInt(SafeTryGetValue(_FormValues, restockKey)); } } } //DRAW THE DATA ROW string rowClass = (e.Item.ItemType == ListItemType.Item) ? "oddRow" : "evenRow"; string autoExpand = selectedCount > 9 ? "noExpand" : "expandColumns"; string smallExpands = selectedCount > 9 ? "nosmallExpand" : "expandSmallColumns"; string overrideSelected = string.Empty; rowBuilder.Append("<tr class=\"" + rowClass + "\">\r\n"); rowBuilder.Append("<td>" + (variantIndex + 1) + "</td>\r\n"); rowBuilder.Append("<td>" + variant.VariantName + "</td>\r\n"); if (names.Contains("SKU")) { rowBuilder.Append("<td align=\"center\"><input name=\"" + skuKey + "\" type=\"text\" value=\"" + variant.Sku + "\" class= \"" + autoExpand + "\" /></td>\r\n"); } if (names.Contains("GTIN")) { rowBuilder.Append("<td align=\"center\"><input name=\"" + gtinKey + "\" type=\"text\" value=\"" + variant.GTIN + "\" class= \"" + autoExpand + "\" /></td>\r\n"); } if (names.Contains("Price")) { rowBuilder.Append("<td align=\"center\"><input name=\"" + priceKey + "\" type=\"text\" value=\"" + variant.Price.LSCurrencyFormat("F2") + "\" class= \"" + smallExpands + "\" />"); overrideSelected = (variant.PriceMode == ModifierMode.Modify) ? string.Empty : " selected"; rowBuilder.Append("<select name=\"" + priceModKey + "\"><option value=\"0\">Modify</option><option value=\"1\"" + overrideSelected + ">Override</option></select></td>\r\n"); } if (names.Contains("Retail")) { rowBuilder.Append("<td align=\"center\"><input name=\"" + retailKey + "\" type=\"text\" value=\"" + variant.MSRP.LSCurrencyFormat("F2") + "\" class= \"" + smallExpands + "\" />"); } if (names.Contains("Model")) { rowBuilder.Append("<td align=\"center\"><input name=\"" + modelKey + "\" type=\"text\" value=\"" + variant.ModelNumber + "\" class= \"" + autoExpand + "\" />"); } if (names.Contains("Dimensions")) { rowBuilder.Append("<td align=\"center\">L <input name=\"" + lengthKey + "\" type=\"text\" value=\"" + variant.Length.LSCurrencyFormat("F2") + "\" style=\"width:46px;\" />"); rowBuilder.Append("W <input name=\"" + widthKey + "\" type=\"text\" value=\"" + variant.Width.LSCurrencyFormat("F2") + "\" style=\"width:46px;\" />"); rowBuilder.Append("H <input name=\"" + heightKey + "\" type=\"text\" value=\"" + variant.Height.LSCurrencyFormat("F2") + "\" style=\"width:46px;\" />"); } if (names.Contains("HandlingCharges")) { rowBuilder.Append("<td align=\"center\"><input name=\"" + handlingChargesKey + "\" type=\"text\" value=\"" + variant.HandlingCharges.LSCurrencyFormat("F2") + "\" class= \"" + smallExpands + "\" />"); } if (names.Contains("Weight")) { rowBuilder.Append("<td align=\"center\"><input name=\"" + weightKey + "\" type=\"text\" value=\"" + variant.Weight.LSCurrencyFormat("F2") + "\" class= \"" + smallExpands + "\" />"); overrideSelected = (variant.WeightMode == ModifierMode.Modify) ? string.Empty : " selected"; rowBuilder.Append("<select name=\"" + weightModKey + "\"><option value=\"0\">Modify</option><option value=\"1\"" + overrideSelected + ">Override</option></select></td>\r\n"); } if (names.Contains("COGS")) { rowBuilder.Append("<td align=\"center\"><input name=\"" + cogsKey + "\" type=\"text\" value=\"" + variant.CostOfGoods.LSCurrencyFormat("F2") + "\" class= \"" + smallExpands + "\" /></td>\r\n"); } string checkedAttribute = string.Empty; if (names.Contains("Available")) { if (variant.Available) { checkedAttribute = " checked=\"true\""; } rowBuilder.Append("<td align=\"center\"><input name=\"" + availKey + "\" type=\"checkbox\"" + checkedAttribute + " value=\"1\" /><input name=\"" + availKey + "\" type=\"hidden\"" + checkedAttribute + " value=\"0\" /></td>"); } if (_ShowInventory) { if (names.Contains("InStock")) { rowBuilder.Append("<td align=\"center\"><input name=\"" + instockKey + "\" type=\"text\" value=\"" + variant.InStock.ToString("F0") + "\" class= \"" + smallExpands + "\" /></td>\r\n"); } if (names.Contains("Availability")) { rowBuilder.Append("<td align=\"center\"><input name=\"" + availDateKey + "\" type=\"text\" value=\"" + ((variant.AvailabilityDate.HasValue && variant.AvailabilityDate != DateTime.MinValue) ? variant.AvailabilityDate.Value.ToShortDateString() : string.Empty) + "\" style=\"width:90px;\" class=\"pickerAndCalendar\" /></td>\r\n"); } if (names.Contains("LowStock")) { rowBuilder.Append("<td align=\"center\"><input name=\"" + restockKey + "\" type=\"text\" value=\"" + variant.InStockWarningLevel.ToString("F0") + "\" class= \"" + smallExpands + "\" /></td>\r\n"); } } if (names.Contains("Image")) { rowBuilder.Append("<td align=\"center\"><input name=\"" + imageKey + "\" type=\"text\" value=\"" + variant.ImageUrl + "\" class= \"" + autoExpand + "\" /><input name=\"" + imageKey + "B\" alt=\"Browse\" onclick=\"return PickImage('" + imageKey + "');\" type=\"image\" align=\"absmiddle\" src=\"" + _IconPath + "find.gif\" /></td>\r\n"); } if (names.Contains("Thumbnail")) { rowBuilder.Append("<td align=\"center\"><input name=\"" + thumbKey + "\" type=\"text\" value=\"" + variant.ThumbnailUrl + "\" class= \"" + autoExpand + "\" /><input name=\"" + thumbKey + "B\" alt=\"Browse\" onclick=\"return PickImage('" + thumbKey + "');\" type=\"image\" align=\"absmiddle\" src=\"" + _IconPath + "find.gif\" /></td>\r\n"); } if (names.Contains("Icon")) { rowBuilder.Append("<td align=\"center\"><input name=\"" + iconKey + "\" type=\"text\" value=\"" + variant.IconUrl + "\" class= \"" + autoExpand + "\" /><input name=\"" + iconKey + "B\" alt=\"Browse\" onclick=\"return PickImage('" + iconKey + "');\" type=\"image\" align=\"absmiddle\" src=\"" + _IconPath + "find.gif\" /></td>\r\n"); } rowBuilder.Append("</tr>\r\n"); phVariantRow.Controls.Add(new LiteralControl(rowBuilder.ToString())); } } }