private void SaveAll() { foreach (RepeaterItem rtnItem in rpData.Items) { var isdirty = GenXmlFunctions.GetField(rtnItem, "isdirty"); var itemid = GenXmlFunctions.GetField(rtnItem, "itemid"); if (isdirty == "true" && Utils.IsNumeric(itemid)) { var grpData = new GroupData(Convert.ToInt32(itemid), StoreSettings.Current.EditLanguage); if (grpData.Exists) { grpData.Validate(); var grpname = GenXmlFunctions.GetField(rtnItem, "groupname"); var grpref = GenXmlFunctions.GetField(rtnItem, "groupref"); var grptype = GenXmlFunctions.GetField(rtnItem, "grouptype"); var addsearchbox = GenXmlFunctions.GetField(rtnItem, "addsearchbox"); grpData.Name = grpname; grpData.Ref = grpref; grpData.Type = grptype; grpData.AddSearchBox = addsearchbox; grpData.Save(); } } } }
private String GetSettings(HttpContext context, String templateName) { try { var strOut = ""; //get uploaded params var ajaxInfo = GetAjaxFields(context); var tabid = ajaxInfo.GetXmlProperty("genxml/hidden/itemid"); var selectlang = ajaxInfo.GetXmlProperty("genxml/hidden/selectlang"); var lang = ajaxInfo.GetXmlProperty("genxml/hidden/lang"); var baselang = ajaxInfo.GetXmlProperty("genxml/hidden/baselang"); // get template var objCtrl = new NBrightDataController(); var bodyTempl = GetTemplateData(templateName, lang); var dataRecord = objCtrl.GetByGuidKey(PortalSettings.Current.PortalId, -1, "SETTINGS", "NBrightPL"); strOut = GenXmlFunctions.RenderRepeater(dataRecord, bodyTempl); return(strOut); } catch (Exception ex) { return(ex.ToString()); } }
/// <summary> /// Create new NBrightInfo class for generic XML data in NBright /// </summary> /// <param name="populate">Create the basic XML structure</param> public NBrightInfo(Boolean populate) { if (populate) { XMLData = GenXmlFunctions.GetGenXml(new RepeaterItem(0, ListItemType.Item)); } }
public void UpdateVoucherCodes(String xmlAjaxData) { xmlAjaxData = GenXmlFunctions.DecodeCDataTag(xmlAjaxData); var vouchercodesList = NBrightBuyUtils.GetGenXmlListByAjax(xmlAjaxData, ""); // build xml for data records var strXml = "<genxml><vouchercodes>"; foreach (var vouchercodesInfo in vouchercodesList) { strXml += vouchercodesInfo.XMLData; } strXml += "</vouchercodes></genxml>"; // replace models xml DataRecord.ReplaceXmlNode(strXml, "genxml/vouchercodes", "genxml"); VoucherCodes = GetEntityList("vouchercodes"); // update any new vouchers with starting voucher value var upd = false; foreach (var v in VoucherCodes) { if (v.GetXmlPropertyDouble("genxml/hidden/vouchervalue") == 0) { v.SetXmlPropertyDouble("genxml/hidden/vouchervalue", v.GetXmlPropertyDouble("genxml/textbox/amount")); v.SetXmlPropertyDouble("genxml/hidden/amountused", "0"); upd = true; } } if (upd) { UpdateVoucherCodeList(VoucherCodes); } }
public void SetSearchUserDataInfoVar(Repeater rpSearch) { var strFilters = GenXmlFunctions.GetSqlSearchFilters(rpSearch); var strOrderBy = GenXmlFunctions.GetSqlOrderBy(rpSearch); if (GenXmlFunctions.GetHiddenField(CtrlSearch, "lang") != "") { strFilters += " and ISNULL(NB2.[Lang],ISNULL(NB1.[Lang],'''')) = '" + Utils.GetCurrentCulture() + "' or ISNULL(Lang,'') = '') "; } UInfo.SearchFilters = strFilters; UInfo.SearchOrderby = strOrderBy; UInfo.SearchReturnLimit = GenXmlFunctions.GetHiddenField(CtrlSearch, "searchreturnlimit"); if (UInfo.SearchPageNumber == "") { UInfo.SearchPageNumber = "1"; } UInfo.SearchPageSize = GenXmlFunctions.GetHiddenField(CtrlSearch, "searchpagesize"); if (UInfo.SearchPageSize == "") { UInfo.SearchPageSize = GenXmlFunctions.GetHiddenField(CtrlSearch, "pagesize"); } var strSearchModuleId = GenXmlFunctions.GetHiddenField(CtrlSearch, "searchmoduleid"); if (Utils.IsNumeric(strSearchModuleId)) { UInfo.SearchModuleId = Convert.ToInt32(strSearchModuleId); } UInfo.SearchClearAfter = "0"; UpdateUserData(); }
private String ReportSelection(HttpContext context) { try { var settings = GetAjaxFields(context); var strOut = "Error!! - Invalid ItemId on Selection Report"; if (settings.ContainsKey("itemid") && Utils.IsNumeric(settings["itemid"])) { if (!settings.ContainsKey("portalid")) { settings.Add("portalid", PortalSettings.Current.PortalId.ToString("")); // aways make sure we have portalid in settings } var objCtrl = new NBrightBuyController(); var obj = objCtrl.Get(Convert.ToInt32(settings["itemid"])); if (obj != null) { var bodyTempl = NBrightBuyUtils.GetTemplateData("Admin.cshtml", "", "config", StoreSettings.Current.Settings()); var strTempl = obj.GetXmlProperty("genxml/textbox/selectiondetails"); bodyTempl = bodyTempl.Replace("[Template:selectiondetails]", strTempl); bodyTempl = Utils.ReplaceSettingTokens(bodyTempl, settings); bodyTempl = Utils.ReplaceUrlTokens(bodyTempl); strOut = GenXmlFunctions.RenderRepeater(obj, bodyTempl); } } return(strOut); } catch (Exception ex) { return(ex.ToString()); } }
/// <summary> /// return Bool data type from XML /// </summary> /// <param name="xpath"></param> /// <returns></returns> public bool GetXmlPropertyBool(string xpath) { if (!string.IsNullOrEmpty(XMLData)) { try { var x = GenXmlFunctions.GetGenXmlValueRawFormat(XMLData, xpath); // bool usually stored as "True" "False" if (x.ToLower() == "true") { return(true); } // Test for 1 as true also. if (Utils.IsNumeric(x)) { if (Convert.ToInt32(x) > 0) { return(true); } } } catch (Exception ex) { return(false); } } return(false); }
protected void UpdateData() { if (CtrlTypeCode != "") { // read any existing data or create new. var objInfo = NBrightBuyUtils.GetSettings(PortalId, ModuleId, CtrlTypeCode, false); // populate changed data objInfo.ModifiedDate = DateTime.Now; //rebuild xml objInfo.XMLData = GenXmlFunctions.GetGenXml(RpData); objInfo = EventBeforeUpdate(RpData, objInfo); objInfo.ItemID = ModCtrl.Update(objInfo); EventAfterUpdate(RpData, objInfo); // clear any store level cache, might be overkill to clear ALL Store cache, // but editing of settings should only happen when changes are being made. NBrightBuyUtils.RemoveModCache(-1); NBrightBuyUtils.RemoveModCache(ModuleId); } }
public void ValidateXmlFormat() { if (XMLDoc == null) { XMLData = GenXmlFunctions.GetGenXml(new RepeaterItem(0, ListItemType.Item)); // if we don;t have anything, create an empty default to stop errors. } if (XMLDoc.SelectSingleNode("genxml/hidden") == null) { SetXmlProperty("genxml/hidden", ""); } if (XMLDoc.SelectSingleNode("genxml/textbox") == null) { SetXmlProperty("genxml/textbox", ""); } if (XMLDoc.SelectSingleNode("genxml/checkbox") == null) { SetXmlProperty("genxml/checkbox", ""); } if (XMLDoc.SelectSingleNode("genxml/dropdownlist") == null) { SetXmlProperty("genxml/dropdownlist", ""); } if (XMLDoc.SelectSingleNode("genxml/radiobuttonlist") == null) { SetXmlProperty("genxml/radiobuttonlist", ""); } }
private void Update(int productid) { if (productid > 0) { var prodData = ProductUtils.GetProductData(productid, StoreSettings.Current.EditLanguage); var strXml = GenXmlFunctions.GetGenXml(rpData); var updInfo = new NBrightInfo(true); updInfo.XMLData = strXml; GenXmlFunctions.UploadFile(rpData, "document", StoreSettings.Current.FolderDocumentsMapPath); var ctrl = ((HtmlGenericControl)rpData.Items[0].FindControl("hiddocument")); if (ctrl != null) { var fName = ctrl.Attributes["value"]; updInfo.SetXmlProperty("genxml/hidden/hiddocument", fName); var docCtrl = (FileUpload)rpData.Items[0].FindControl("document"); updInfo.SetXmlProperty("genxml/hidden/posteddocumentname", docCtrl.PostedFile.FileName); } prodData.Update(updInfo.XMLData); prodData.Save(); prodData.FillEmptyLanguageFields(); if (StoreSettings.Current.DebugModeFileOut) { prodData.OutputDebugFile(PortalSettings.HomeDirectoryMapPath + "debug_productupdate.xml"); } NBrightBuyUtils.RemoveModCachePortalWide(PortalId); ProductUtils.RemoveProductDataCache(prodData); } }
public GenTextEditor(XmlNode xmlNod, string ctrlPath = "~/controls/TextEditor.ascx") { var oControl = LoadControl(ctrlPath); oControl = (Control)GenXmlFunctions.AssignByReflection(oControl, xmlNod); Controls.Add(oControl); }
private void TextEditorDataBinding(object sender, EventArgs e) { var gte = (GenTextEditor)sender; var container = (IDataItemContainer)gte.NamingContainer; try { gte.Visible = visibleStatus.DefaultIfEmpty(true).First(); if ((gte.Attributes["databind"] != null)) { gte.Text = (string)DataBinder.Eval(container.DataItem, gte.Attributes["databind"]); } else { gte.Text = GenXmlFunctions.GetGenXmlValue(gte.ID, "edt", (string)DataBinder.Eval(container.DataItem, _databindColumn)); } } // ReSharper disable EmptyGeneralCatchClause catch (Exception) // ReSharper restore EmptyGeneralCatchClause { //do nothing } }
public GenFileUpload(XmlNode xmlNod, string ctrlPath = "~/controls/filepickeruploader.ascx") { var oControl = LoadControl(ctrlPath); oControl = (Control)GenXmlFunctions.AssignByReflection(oControl, xmlNod); Controls.Add(oControl); }
private void DoExport() { var navigationData = new NavigationData(PortalId, "AdminOrders"); var strFilter = navigationData.Criteria; var l2 = new List <NBrightInfo>(); const string strOrder = " order by [XMLData].value('(genxml/createddate)[1]','nvarchar(20)') DESC, ModifiedDate DESC "; var l1 = ModCtrl.GetList(PortalId, -1, "ORDER", strFilter, strOrder, 1000); foreach (var i in l1) { var nodList = i.XMLDoc.SelectNodes("genxml/items/*"); foreach (XmlNode nod in nodList) { var itemline = (NBrightInfo)i.Clone(); itemline.RemoveXmlNode("genxml/items"); itemline.AddXmlNode("<item>" + nod.OuterXml + "</item>", "item", "genxml"); l2.Add(itemline); } } var rp = new Repeater(); var rpSearchTempl = ModCtrl.GetTemplateData(ModSettings, "ordersexport.html", Utils.GetCurrentCulture(), DebugMode); rp.ItemTemplate = NBrightBuyUtils.GetGenXmlTemplate(rpSearchTempl, ModSettings.Settings(), PortalSettings.HomeDirectory); rp.DataSource = l2; var strOut = GenXmlFunctions.RenderRepeater(rp); Utils.ForceStringDownload(Response, "ordersexport.csv", strOut); }
public GenLabelControl(XmlNode xmlNod, string ctrlPath = "~/controls/LabelControl.ascx") { var oControl = (DotNetNuke.UI.UserControls.LabelControl)LoadControl(ctrlPath); oControl = (DotNetNuke.UI.UserControls.LabelControl)GenXmlFunctions.AssignByReflection(oControl, xmlNod); Controls.Add(oControl); }
public void SetXmlProperty(string xpath, string Value, System.TypeCode DataTyp = System.TypeCode.String, bool cdata = true, bool ignoresecurityfilter = false, bool filterlinks = false) { if (!string.IsNullOrEmpty(XMLData)) { if (DataTyp == System.TypeCode.Double) { // always save double in en-US format if (Utils.IsNumeric(Value, Utils.GetCurrentCulture())) { var dbl = Convert.ToDouble(Value, CultureInfo.GetCultureInfo(Utils.GetCurrentCulture())); Value = dbl.ToString(CultureInfo.GetCultureInfo("en-US")); } } if (DataTyp == System.TypeCode.DateTime) { if (Utils.IsDate(Value, Utils.GetCurrentCulture())) { Value = Utils.FormatToSave(Value, System.TypeCode.DateTime); } } XMLData = GenXmlFunctions.SetGenXmlValue(XMLData, xpath, Value, cdata, ignoresecurityfilter, filterlinks); // do the datatype after the node is created if (DataTyp == System.TypeCode.DateTime) { XMLData = GenXmlFunctions.SetGenXmlValue(XMLData, xpath + "/@datatype", "date", cdata); } if (DataTyp == System.TypeCode.Double) { XMLData = GenXmlFunctions.SetGenXmlValue(XMLData, xpath + "/@datatype", "double", cdata); } } }
protected void CtrlItemCommand(object source, RepeaterCommandEventArgs e) { var cArg = e.CommandArgument.ToString(); var param = new string[3]; if (Utils.RequestParam(Context, "eid") != "") { param[0] = "eid=" + Utils.RequestParam(Context, "eid"); } switch (e.CommandName.ToLower()) { case "pay": if (_cartInfo != null) { _cartInfo.SaveModelTransQty(); // move qty into trans _cartInfo.ConvertToOrder(DebugMode); var orderData = new OrderData(_cartInfo.PurchaseInfo.ItemID); orderData.payselectionXml = GenXmlFunctions.GetGenXml(rpPaymentGateways, "", ""); orderData.PaymentProviderKey = cArg.ToLower(); // provider keys should always be lowecase orderData.SavePurchaseData(); var redirecturl = PaymentsInterface.Instance(orderData.PaymentProviderKey).RedirectForPayment(orderData); if (redirecturl != "") { Response.Redirect(redirecturl, true); } } Response.Redirect(Globals.NavigateURL(TabId, "", param), true); break; } }
public void Update(Repeater rpData) { // update email var email = GenXmlFunctions.GetField(rpData, "email"); if (_userInfo != null && Utils.IsEmail(email) && (_userInfo.Email != email)) { _userInfo.Email = email; UserController.UpdateUser(PortalSettings.Current.PortalId, _userInfo); } // ClientEditorRole var clientEditorRole = GenXmlFunctions.GetField(rpData, "clienteditorrole"); if (clientEditorRole == "True") { AddClientEditorRole(); } else { RemoveClientEditorRole(); } // update Discount codes var strXml = GenXmlFunctions.GetField(rpData, "xmlupdatediscountcodedata"); strXml = GenXmlFunctions.DecodeCDataTag(strXml); UpdateDiscountCodes(strXml); strXml = GenXmlFunctions.GetField(rpData, "xmlupdatevouchercodedata"); strXml = GenXmlFunctions.DecodeCDataTag(strXml); UpdateVoucherCodes(strXml); }
private void CbListDataBinding(object sender, EventArgs e) { var chk = (CheckBoxList)sender; var container = (IDataItemContainer)chk.NamingContainer; try { chk.Visible = visibleStatus.DefaultIfEmpty(true).First(); var xmlNod = GenXmlFunctions.GetGenXmLnode(chk.ID, "checkboxlist", (string)DataBinder.Eval(container.DataItem, _databindColumn)); var xmlNodeList = xmlNod.SelectNodes("./chk"); if (xmlNodeList != null) { foreach (XmlNode xmlNoda in xmlNodeList) { if (xmlNoda.Attributes != null) { if (xmlNoda.Attributes.GetNamedItem("data") != null) { var datavalue = xmlNoda.Attributes["data"].Value; //use the data attribute if there if ((chk.Items.FindByValue(datavalue).Value != null)) { chk.Items.FindByValue(datavalue).Selected = Convert.ToBoolean(xmlNoda.Attributes["value"].Value); } } } } } } catch (Exception) { //do nothing } }
protected void CtrlItemCommand(object source, RepeaterCommandEventArgs e) { var cArg = e.CommandArgument.ToString(); var param = new string[3]; switch (e.CommandName.ToLower()) { case "import": param[0] = ""; var importXML = GenXmlFunctions.GetGenXml(rpData, "", StoreSettings.Current.FolderUploadsMapPath); var nbi = new NBrightInfo(false); nbi.XMLData = importXML; _recordXref = new Dictionary <int, int>(); _productList = new Dictionary <int, string>(); DoImport(nbi); DoImportImages(nbi); DoImportDocs(nbi); /* * Validation removed as it impact the performance of the import. * A validation can be done by the store manager through the UI Admin Tools after the import. */ // Validate(); NBrightBuyUtils.RemoveModCachePortalWide(PortalId); NBrightBuyUtils.SetNotfiyMessage(ModuleId, "completed", NotifyCode.ok); Response.Redirect(NBrightBuyUtils.AdminUrl(TabId, param), true); break; case "cancel": param[0] = ""; Response.Redirect(NBrightBuyUtils.AdminUrl(TabId, param), true); break; } }
private void DateControlDataBinding(object sender, EventArgs e) { var dte = (GenDateControl)sender; var container = (IDataItemContainer)dte.NamingContainer; try { dte.Visible = visibleStatus.DefaultIfEmpty(true).First(); if ((dte.Attributes["databind"] != null)) { dte.Text = Convert.ToString(DataBinder.Eval(container.DataItem, dte.Attributes["databind"])); } else { dte.Text = GenXmlFunctions.GetGenXmlValue(dte.ID, "textbox", (string)DataBinder.Eval(container.DataItem, _databindColumn)); } } // ReSharper disable EmptyGeneralCatchClause catch (Exception) // ReSharper restore EmptyGeneralCatchClause { //do nothing } }
public static NBrightInfo InsertEntityLangData(NBrightInfo objLangInfo, Repeater rpEntity, Repeater rpEntityLang, String entityName, String folderMapPath = "") { var strModelXML = "<" + entityName + ">"; foreach (RepeaterItem i in rpEntityLang.Items) { if (GenXmlFunctions.GetField(rpEntity, "chkDelete", i.ItemIndex) != "True") { GenXmlFunctions.SetField(rpEntityLang, "entityindex", i.ItemIndex.ToString(CultureInfo.InvariantCulture), i.ItemIndex); strModelXML += GenXmlFunctions.GetGenXml(i, "", folderMapPath); } } strModelXML += "</" + entityName + ">"; // Create a document fragment to contain the XML to be inserted. var docFrag = objLangInfo.XMLDoc.CreateDocumentFragment(); // Set the contents of the document fragment. docFrag.InnerXml = strModelXML; //Add new model data if (objLangInfo.XMLDoc.DocumentElement != null) { objLangInfo.XMLDoc.DocumentElement.AppendChild(docFrag); } objLangInfo.XMLData = objLangInfo.XMLDoc.OuterXml; return(objLangInfo); }
private void MoveRecord(String movectrl) { var selectedctrl = GenXmlFunctions.GetField(rpDataH, "selectedctrl"); var pluginData = new PluginData(PortalId); pluginData.MovePlugin(selectedctrl, movectrl); }
protected void CtrlItemCommand(object source, RepeaterCommandEventArgs e) { var cArg = e.CommandArgument.ToString(); var param = new string[3]; var navigationData = new NavigationData(PortalId, "OrderAdmin"); switch (e.CommandName.ToLower()) { case "entrydetail": param[0] = "eid=" + cArg; Response.Redirect(Globals.NavigateURL(TabId, "", param), true); break; case "reorder": if (Utils.IsNumeric(cArg)) { var orderData = new OrderData(PortalId, Convert.ToInt32(cArg)); orderData.CopyToCart(DebugMode); } Response.Redirect(Globals.NavigateURL(StoreSettings.Current.CartTabId, "", param), true); break; case "return": param[0] = ""; Response.Redirect(Globals.NavigateURL(TabId, "", param), true); break; case "search": var strXml = GenXmlFunctions.GetGenXml(rpSearch, "", ""); navigationData.Build(strXml, _templSearch); navigationData.OrderBy = GenXmlFunctions.GetSqlOrderBy(rpSearch); navigationData.XmlData = GenXmlFunctions.GetGenXml(rpSearch); navigationData.Save(); if (StoreSettings.Current.DebugModeFileOut) { strXml = "<root><sql><![CDATA[" + navigationData.Criteria + "]]></sql>" + strXml + "</root>"; var xmlDoc = new System.Xml.XmlDocument(); xmlDoc.LoadXml(strXml); xmlDoc.Save(PortalSettings.HomeDirectoryMapPath + "debug_search.xml"); } Response.Redirect(Globals.NavigateURL(TabId, "", param), true); break; case "resetsearch": // clear cookie info navigationData.Delete(); Response.Redirect(Globals.NavigateURL(TabId, "", param), true); break; case "downloadinvoice": DownloadInvoice(Convert.ToInt32(cArg)); break; case "orderby": navigationData.OrderBy = GenXmlFunctions.GetSqlOrderBy(rpData); navigationData.Save(); break; } }
public void UpdateAddress(Repeater rpData, int index) { if (_addressList.Count > index) { var strXml = GenXmlFunctions.GetGenXml(rpData); UpdateAddress(strXml, index); } }
private void CreateCaptcha(Control container, XmlNode xmlNod) { var rcap = new DotNetNuke.UI.WebControls.CaptchaControl(); rcap = (DotNetNuke.UI.WebControls.CaptchaControl)GenXmlFunctions.AssignByReflection(rcap, xmlNod); rcap.DataBinding += CaptchaControlDataBinding; container.Controls.Add(rcap); }
public void UpdatePlugin(Repeater rpData, int index) { if (_pluginList.Count > index) { var strXml = GenXmlFunctions.GetGenXml(rpData); UpdatePlugin(strXml, index); } }
public void UpdateProfile(Repeater rpData, Boolean debugMode = false) { const string profileupload = "NBStore\\profileupload"; Utils.CreateFolder(PortalSettings.Current.HomeDirectoryMapPath + profileupload); var strXml = GenXmlFunctions.GetGenXml(rpData, "", PortalSettings.Current.HomeDirectoryMapPath + profileupload); Save(strXml, debugMode); }
public void AppendToXmlProperty(string xpath, string Value, System.TypeCode DataTyp = System.TypeCode.String, bool cdata = true) { if (!string.IsNullOrEmpty(XMLData)) { var strData = GenXmlFunctions.GetGenXmlValue(XMLData, xpath) + Value; XMLData = GenXmlFunctions.SetGenXmlValue(XMLData, xpath, strData, cdata); } }
public void UpdateAjax(String ajaxStrData, String updateTypePrefix = "", bool ignoresecurityfilter = false, bool filterlinks = false) { ValidateXmlFormat(); // make sure we have correct structure so update works. var updateType = updateTypePrefix + "save"; if (!String.IsNullOrEmpty(Lang)) { updateType = updateTypePrefix + "lang"; } var ajaxInfo = new NBrightInfo(); var xmlData = GenXmlFunctions.GetGenXmlByAjax(ajaxStrData, "", "genxml", ignoresecurityfilter, filterlinks); ajaxInfo.XMLData = xmlData; var nodList2 = ajaxInfo.XMLDoc.SelectNodes("genxml/*"); if (nodList2 != null) { foreach (XmlNode nod1 in nodList2) { var nodList = ajaxInfo.XMLDoc.SelectNodes("genxml/" + nod1.Name.ToLower() + "/*"); if (nodList != null) { foreach (XmlNode nod in nodList) { if (nod.Attributes != null && nod.Attributes["update"] != null) { if (nod1.Name.ToLower() == "checkboxlist") { if (nod.Attributes["update"].InnerText.ToLower() == updateType) { RemoveXmlNode("genxml/checkboxlist/" + nod.Name.ToLower()); AddXmlNode(nod.OuterXml, nod.Name.ToLower(), "genxml/checkboxlist"); } } else { if (nod.Attributes["update"].InnerText.ToLower() == updateType) { var xpath = "genxml/" + nod1.Name.ToLower() + "/" + nod.Name.ToLower(); SetXmlProperty(xpath, nod.InnerText); if (nod1.Name.ToLower() == "dropdownlist" && nod.Attributes["selectedtext"] != null) { SetXmlProperty(xpath + "/@selectedtext", nod.Attributes["selectedtext"].InnerText); } if (nod.Attributes["datatype"] != null) { // just need to update the attr on the XML, the Formatting has been done by the GetGenXmlByAjax function. XMLData = GenXmlFunctions.SetGenXmlValue(XMLData, xpath + "/@datatype", nod.Attributes["datatype"].InnerText.ToLower()); } } } } } } } } }