<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        javascript讀取XML數據,在頁面中展現、編輯、保存的實現_javascript技巧

        來源:懂視網 責編:小采 時間:2020-11-27 20:45:05
        文檔

        javascript讀取XML數據,在頁面中展現、編輯、保存的實現_javascript技巧

        javascript讀取XML數據,在頁面中展現、編輯、保存的實現_javascript技巧:首先考慮用什么方法做,考慮到三個方式:1、C#拼HTML構造table,修改和保存通過Ajax實現。2、XML+XSL,展現和修改用兩個XSL文件來做,Ajax修改、保存XML。3、GridView控件。 經過細致考慮,首先第三方案GridView控件滿足不了需求,因為XML格式多樣,可
        推薦度:
        導讀javascript讀取XML數據,在頁面中展現、編輯、保存的實現_javascript技巧:首先考慮用什么方法做,考慮到三個方式:1、C#拼HTML構造table,修改和保存通過Ajax實現。2、XML+XSL,展現和修改用兩個XSL文件來做,Ajax修改、保存XML。3、GridView控件。 經過細致考慮,首先第三方案GridView控件滿足不了需求,因為XML格式多樣,可

        首先考慮用什么方法做,考慮到三個方式:1、C#拼HTML構造table,修改和保存通過Ajax實現。2、XML+XSL,展現和修改用兩個XSL文件來做,Ajax修改、保存XML。3、GridView控件。
        經過細致考慮,首先第三方案GridView控件滿足不了需求,因為XML格式多樣,可能涉及到很多的行、列合并和行、列表頭合并。第一方案太麻煩,坐起來是細致活和體力活,需求變動后不好修改。所以選擇第二方案。開始學習XPath、XSLT。AJAX用js異步調用一般處理文件(ashx)的方式。
        1、實現選擇框(通過Ajax讀取數據庫,綁定數據)的綁定時出現錯誤,最終發現是在讀取XML時使用了異步方式與Ajax有沖突,用同步就可以解決了。
        2、保存XML。修改后的數據怎么保存到XML了?通過Javascript保存,js不能保存,如果用js保存必須用hta;用AJax保存,怎么能讓修改后的XML傳到AJAX方法里去,瞎琢磨,試了幾種方法,還真讓我試出來了,源碼
        js:
        代碼如下:
        var $=function (id){return document.getElementById(id);}
        var xmlHttp;
        var curControl;
        var curValue;
        function ToEdit(){
        var xml = new ActiveXObject("Microsoft.XMLDOM");
        xml.async = false;
        xml.load("myxml.xml");
        var xsl = new ActiveXObject("Microsoft.XMLDOM");
        xsl.async = false;
        xsl.load("myxsl_edit.xsl");
        document.write(xml.transformNode(xsl));
        document.close();
        //綁定選擇框
        LoadSelect();
        }
        //保存xml
        function Save(){
        var oDoc = new ActiveXObject("MSXML2.DOMDocument.3.0");//負責得到響應結果
        oDoc.async = false;
        oDoc.resolveExternals = false;
        oDoc.load("myxml.xml");
        var data = oDoc.selectNodes("http://Data[@IsEdit='1']");//讀取所有請求大類所屬小類的類名
        for(var i=0; i < data.length; i++)
        {
        var nodeEdit;
        var nodeID;
        var nodeType;
        for(var j=0; j{
        if(data[i].attributes[j].nodeName=="IsEdit")
        {
        nodeEdit = data[i].attributes[j].nodeValue;
        }
        else if(data[i].attributes[j].nodeName=="id")
        {
        nodeID = data[i].attributes[j].nodeValue;
        }
        else if(data[i].attributes[j].nodeName=="Type")
        {
        nodeType = data[i].attributes[j].nodeValue;
        }
        }
        if(nodeType=="Combox")
        {
        var combox = $(nodeID);
        if(combox!=null)
        {
        if(combox.options.length>0)
        data[i].text = combox.options[combox.selectedIndex].value;
        }
        }
        else
        {
        data[i].text = $(nodeID).value;
        }
        }
        var strXML = oDoc.xml;
        var url="saveXML.ashx";
        StartRequest(url,null,AfterEdit,strXML,"POST");
        }
        function AfterEdit()
        {
        //可以不用下面兩個if語句,沒有用異步方式
        if(xmlHttp.readyState==4)
        {
        if(xmlHttp.status==200)
        {
        var rtn = xmlHttp.responseText;
        if(rtn=="true")
        {
        alert("保存成功!");
        }
        else
        {
        alert("保存失敗!");
        }
        Show();
        }
        }
        }
        function Show()
        {
        // Load XML
        var xml = new ActiveXObject("Microsoft.XMLDOM");
        xml.async = false;
        xml.load("myxml.xml");
        // Load XSL
        var xsl = new ActiveXObject("Microsoft.XMLDOM");
        xsl.async = false;
        xsl.load("myxsl.xsl");
        document.write(xml.transformNode(xsl));
        document.close();
        }
        ///////////////////綁定下選擇框////////////////////////
        function LoadSelect()
        {
        var allcontrols = document.all;
        for(var j=0;j{
        if(allcontrols[j].tagName=="SELECT")
        {
        var datainfo = allcontrols[j].flex;
        //datainfo:tablename^value^name^selectedvalue
        var datainfo_sp = datainfo.split('

        );
        if(datainfo_sp.length>2)
        {
        var selectID = datainfo_sp[0];
        var selectedValue = datainfo_sp[2];
        var datainfo_sp_sp = datainfo_sp[1].split('^');
        var table = datainfo_sp_sp[0];
        var value = datainfo_sp_sp[1];
        var text = datainfo_sp_sp[2];
        var control = $(selectID);
        var param = "table=" + table + "&value=" + value + "&text=" + text;
        curControl = control;
        curValue = selectedValue;
        var callback = BindSelect;
        StartRequest("getDataSet.ashx", param, BindSelect,null,"GET");
        }
        }
        }
        }
        function BindSelect()
        {
        //可以不用下面兩個if語句,沒有用異步方式
        if(xmlHttp.readyState==4)
        {
        if(xmlHttp.status==200)
        {
        var control = curControl;
        var selectedValue = curValue;
        var data = xmlHttp.responseText;
        if(data != null || data !="")
        {
        control.add(new Option("",""));
        var data_sp = data.split('

        );
        for(var i=0; i{
        var data_sp_sp = data_sp[i].split('^');
        if(data_sp_sp.length>1)
        control.add(new Option(data_sp_sp[1], data_sp_sp[0]));
        }
        for(var i =0;i{
        if(control.options[i].value == selectedValue)
        {
        control.selectedIndex = i;
        break;
        }
        }
        }
        }
        }
        }
        ///////////////////綁定下選擇框////////////////////////
        ///////////////////實現Ajax///////////////////////////
        function StartRequest(url,param,callback,sendString,type)
        {
        if(window.XMLHttpRequest)
        {
        xmlHttp=new XMLHttpRequest();//mozilla瀏覽器
        }
        else if(window.ActiveXObject)
        {
        try
        {
        xmlHttp=new ActiveXObject("MSXML2.XMLHTTP");//IE舊版本
        }
        catch(e)
        {
        try
        {
        xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");//IE新版本
        }
        catch(e)
        {
        }
        }
        if(!xmlHttp)
        {
        window.alert("不能創建XMLHTTPREQUEST對象!");
        return false;
        }
        }
        var strURL = url + (param != "" && param!=null ? "?" + param : "");
        sendString = "param=" + sendString;
        xmlHttp.open(type,strURL,false);
        xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded")
        xmlHttp.onreadystatechange=callback;
        xmlHttp.send(sendString);
        }

        xml






        統計




        類別


        系數


        分析




        比例1


        比例2


        比例3


        比例4


        比例5


        比例6


        比例7







        1


        01


        5.0


        2009-10-05


        21111


        21


        21


        21




        2


        2


        3


        4


        4


        2


        2


        2




        3


        1


        2


        4


        4


        2


        1


        1




        小計:







        4


        4


        4


        4


        4


        2


        4


        4




        5


        4


        4


        4


        4


        2


        4


        4




        6


        3


        4


        4


        4


        2


        3


        3




        7


        4


        4


        4


        4


        4


        4


        4




        8


        4


        4


        4


        4


        3


        4


        4




        9


        4


        4


        4


        4


        1


        5.0


        2009-10-14




        小計:







        10


        4


        4


        4


        4


        1


        5.0


        2009-10-14




        11


        4


        4


        4


        4


        1


        5.0


        2009-10-14




        12


        4


        4


        4


        4


        1


        5.0


        2009-10-14




        小計:




        顯示頁的xsl
        代碼如下:

        xmlns:xsl="http://www.w3.org/1999/XSL/Transform">



        table demo

        聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        javascript讀取XML數據,在頁面中展現、編輯、保存的實現_javascript技巧

        javascript讀取XML數據,在頁面中展現、編輯、保存的實現_javascript技巧:首先考慮用什么方法做,考慮到三個方式:1、C#拼HTML構造table,修改和保存通過Ajax實現。2、XML+XSL,展現和修改用兩個XSL文件來做,Ajax修改、保存XML。3、GridView控件。 經過細致考慮,首先第三方案GridView控件滿足不了需求,因為XML格式多樣,可
        推薦度:
        標簽: 技巧 編輯 在頁面
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 免费成人av电影| 男人的天堂网免费网站| 国产又大又粗又长免费视频| 在线观看亚洲免费| 国产精品亚洲综合| 国产乱弄免费视频| 欧洲美女大片免费播放器视频 | 亚洲国产精品久久久久| 国产成人无码精品久久久久免费| 一本色道久久88综合亚洲精品高清| 亚洲国产成人综合精品| 免费观看亚洲人成网站| 黄网站色视频免费看无下截| 亚洲av无码国产精品色在线看不卡 | 亚洲免费观看在线视频| 2022年亚洲午夜一区二区福利| 18成禁人视频免费网站| 在线观看亚洲AV日韩A∨| 成人a免费α片在线视频网站| 精品国产_亚洲人成在线| 亚洲精品视频免费| 暖暖日本免费中文字幕| 亚洲免费一级视频| 国产免费观看网站| a级黄色毛片免费播放视频| 久久精品国产亚洲精品2020| 成年人在线免费看视频| 性生大片视频免费观看一级| 国产AV无码专区亚洲AV男同 | 尤物永久免费AV无码网站| 国产精品成人69XXX免费视频| 亚洲国产精品第一区二区| 97无码免费人妻超级碰碰夜夜| 爱情岛论坛免费视频| 亚洲AV永久青草无码精品| 亚洲国产精品免费观看| 无码的免费不卡毛片视频| 亚洲色偷偷av男人的天堂| 四虎永久在线免费观看| 日韩内射激情视频在线播放免费| 九九精品国产亚洲AV日韩|