ajax+xml实现编辑预览功能

在项目中有一个功能需要做一个添加预览功能。我的思路是表单里的数据保存到xml文件中,打开预览页面用的是保存xml数据。

js端

function  autoSaveGoodsToXml() { 
           
           
             var poststr = "";
             // 当前页面的ID元素集合
             // 此处也可用中的集合document.form来获取表单ID
             var saveids = ["filed1","filed2"[...]];
            
             // 处理post数据格式
             for ( var i = 0; i < saveids.length; i++) {
                obj = document.getElementById(saveids[i]);
                 if (obj.type == 'checkbox' || obj.type == 'radio') {
                     if (obj.checked) {
                        obj.value = 1;
                    }  else {
                        obj.value = 0;
                    }

                } 
                
                 if (i == 0) {
                    poststr = obj.name + "=" + obj.value + "";
                }  else {
                    poststr = poststr + "&" + obj.name + "=" + obj.value + "";
                }



            }
             // 编辑器信息特特处理 
             var oEditor = FCKeditorAPI.GetInstance("fckFiled");
    //encodeURIComponent主要是处理post数据时"&nbsp;"中&的转义
            poststr = poststr + "&" + "Textintroduce= " + encodeURIComponent(oEditor.GetXHTML( true));

             // ajax交由后台去处理
            $.post(
                "xxxx.ashx",
                 poststr
                 ,
                  function (data) {
                    
                      // 成功
                      if (data == "1") {
                         window.open("xxx.aspx")
                     }
                 },
                "text"
                );

       }  
      

        xxxx.ashx实现保存xml数据

 第一次用 xmlDocument类,花了好少时间研究xml的操作。 

          
///  <summary>          

        /// 根据集合生成xml文件
        
///</summary>

///<param name="fileName"></param>

///<param name="keys">Request.from接收到的键值集合</param>

///<returns></returns>

private bool WriteToXml(string fileName, string[] keys)
        {
            XmlDocument myDoc = new XmlDocument();
            
            //申明xml段落
            myDoc.AppendChild(myDoc.CreateXmlDeclaration("1.0""UTF-8"null));

            //加入根元素
            XmlElement goodsElem = myDoc.CreateElement("","Bookinfo","");
            myDoc.AppendChild(goodsElem);

            //添加子节点

           
// 遍历所有参数写入到xml结点
            foreach (string k in keys)
            {
                string kk;
                if(k!=String.Empty){
                    kk ="aa_"+k;
                    XmlElement ele = myDoc.CreateElement(kk);
                    XmlText text = myDoc.CreateTextNode(HttpContext.Current.Request.Form[k]);
                    ele.AppendChild(text);
                    goodsElem.AppendChild(ele);
                }
            } 
            //保存文件
            try
            {
                myDoc.Save(fileName);
            }
            catch
            {
                return false;               
            }
            return true;
        }

  

 

 读取xml实现代码 

 

private  void  readBooks()  

        {
            XmlDocument myDoc = new XmlDocument();
            xmlfilename =  Server.MapPath(xmlfilename);
            Repeater re = new Repeater();
            myDoc.Load(xmlfilename);            

            XmlNodeList nodes = myDoc.SelectSingleNode("Goods").ChildNodes ;
            
            //ht 是HashTable类型,我觉得php的数据带键值的好用,所以选择了与其相似的类似 k/v 方式,再加上hashTable存储的是object类型,所以就直这用了

    foreach (XmlNode node in nodes)
            {
                ht.Add(node.Name, node.InnerText); 
            }
           
        }

 在做读取过程中xmlNodeList,xmlNode,xmlElement等类一直没有搞的太清楚。

这段时间一直在检查项目中其他人员的开,除了阅读还是阅读,到了自己写就真不一样了,因项目需要,我刚转到asp.net c#开发3-4个月。 

此方法加上监听就可以做后台发布的自动保存功能. 

 

转载于:https://www.cnblogs.com/gbsck/archive/2012/08/16/2640999.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值