protected void SaveLocalizableContentGrid(ProductVariantAttributeValue pvav) { if (pvav == null) { return; } if (!this.HasLocalizableContent) { return; } foreach (GridViewRow row in gvProductVariantAttributeValues.Rows) { Repeater rptrLanguageDivs2 = row.FindControl("rptrLanguageDivs2") as Repeater; if (rptrLanguageDivs2 != null) { HiddenField hfProductVariantAttributeValueId = row.FindControl("hfProductVariantAttributeValueId") as HiddenField; int pvavId = int.Parse(hfProductVariantAttributeValueId.Value); if (pvavId == pvav.ProductVariantAttributeValueId) { foreach (RepeaterItem item in rptrLanguageDivs2.Items) { if (item.ItemType == ListItemType.Item || item.ItemType == ListItemType.AlternatingItem) { var txtLocalizedName = (TextBox)item.FindControl("txtLocalizedName"); var lblLanguageId = (Label)item.FindControl("lblLanguageId"); int languageId = int.Parse(lblLanguageId.Text); string name = txtLocalizedName.Text; bool allFieldsAreEmpty = string.IsNullOrEmpty(name); var content = ProductAttributeManager.GetProductVariantAttributeValueLocalizedByProductVariantAttributeValueIdAndLanguageId(pvav.ProductVariantAttributeValueId, languageId); if (content == null) { if (!allFieldsAreEmpty && languageId > 0) { //only insert if one of the fields are filled out (avoid too many empty records in db...) content = ProductAttributeManager.InsertProductVariantAttributeValueLocalized(pvav.ProductVariantAttributeValueId, languageId, name); } } else { if (languageId > 0) { content = ProductAttributeManager.UpdateProductVariantAttributeValueLocalized(content.ProductVariantAttributeValueLocalizedId, content.ProductVariantAttributeValueId, languageId, name); } } } } } } } }