WEB开发网      濠电姷鏁告繛鈧繛浣冲洤纾瑰┑鐘宠壘閻ょ偓銇勯幇鍫曟闁稿鍠愰妵鍕冀閵娧佲偓鎺楁⒒閸曨偄顏柡宀嬬畱铻e〒姘煎灡绗戦梻浣筋嚙濮橈箓顢氳濠€浣糕攽閻樿宸ュΔ鐘叉啞缁傚秹宕滆绾惧ジ寮堕崼娑樺缂佹宀搁弻鐔风暋閻楀牆娈楅梺璇″枓閺呯姴鐣疯ぐ鎺濇晝闁靛牆妫欓蹇旂節閻㈤潧浠﹂柛銊ョ埣楠炴劙骞橀鑲╋紱闂佽宕樼粔顔裤亹閹烘挸浜归梺缁樺灦閿曗晛螞閸曨垱鈷戦柟鑲╁仜婵″ジ鎮楀☉鎺撴珖缂侇喖顑呴鍏煎緞濡粯娅囬梻浣瑰缁诲倿寮绘繝鍥ㄦ櫇闁稿本绋撻崢鐢告煟鎼淬垻鈯曢柨姘舵煟韫囥儳绋荤紒缁樼箖缁绘繈宕橀妸褌绱濋梻浣筋嚃閸ㄤ即宕弶鎴犳殾闁绘梻鈷堥弫鍌炴煕閳锯偓閺呮瑧妲愬Ο琛℃斀闁绘劕妯婇崵鐔封攽椤旇棄鍔ら摶鐐烘煕閺囥劌澧柛娆忕箻閺屽秹宕崟顒€娅g紓浣插亾濠㈣泛顑囩粻楣冩煙鐎涙ḿ绠橀柨娑樼У椤ㄣ儵鎮欓鍕紙闂佽鍠栫紞濠傜暦閹偊妲诲┑鈩冨絻椤兘寮诲☉銏犖╅柕澶堝労閸斿绱撴担绋库偓鍝ョ矓瑜版帒鏋侀柟鍓х帛閺呮悂鏌ㄩ悤鍌涘 ---闂傚倸鍊烽悞锔锯偓绗涘厾娲煛閸涱厾顔嗛梺璺ㄥ櫐閹凤拷
开发学院网页设计JavaScript 应用JScript和XML自定义无刷新多级联动菜单 阅读

应用JScript和XML自定义无刷新多级联动菜单

 2010-09-14 13:39:10 来源:WEB开发网 闂傚倸鍊风欢姘缚瑜嶈灋闁圭虎鍠栫粻顖炴煥閻曞倹瀚�闂傚倸鍊风粈渚€骞夐敓鐘插瀭闁汇垹鐏氬畷鏌ユ煙閹殿喖顣奸柛搴$У閵囧嫰骞掗幋婵冨亾閻㈢ǹ纾婚柟鐐灱濡插牊绻涢崱妤冃℃繛宀婁簽缁辨捇宕掑鎵佹瀸闂佺懓鍤栭幏锟�濠电姷鏁告慨顓㈠箯閸愵喖宸濇い鎾寸箘閹规洟姊绘笟鈧ḿ褍煤閵堝悿娲Ω閳轰胶鍔﹀銈嗗笂閼冲爼鍩婇弴銏$厪闁搞儮鏅涙禒褏绱掓潏鈺佷槐闁轰焦鎹囬弫鎾绘晸閿燂拷闂傚倸鍊风欢姘缚瑜嶈灋闁圭虎鍠栫粻顖炴煥閻曞倹瀚�  闂傚倸鍊烽懗鑸电仚缂備胶绮〃鍛村煝瀹ュ鍗抽柕蹇曞У閻庮剟姊虹紒妯哄闁圭⒈鍋嗛惀顏囶樄闁哄本娲樼换婵婄疀閺囩姷鐛ラ梻浣哄帶婢瑰﹥绂嶅⿰鍫氣偓鏃堝礃椤忎礁浜鹃柨婵嗛婢ь喖霉閻樻瑥瀚粻楣冩煕椤愩倕鏋庨柣蹇嬪劜閵囧嫰寮村Ο鍝勫Е濡炪們鍨洪悷鈺呭箖閳╁啯鍎熼柕鍥у簻閹凤拷
核心提示: WriteStartElement方法用于写出指定的开始标记;WriteEndElement方法用于关闭一个元素并弹出相应的命名空间范围;WriteAttributeString方法用于写出具有指定值的属性;WriteStartAttribute方法用于书写属性的起始内容;WriteEnd

WriteStartElement方法用于写出指定的开始标记;

WriteEndElement方法用于关闭一个元素并弹出相应的命名空间范围;

WriteAttributeString方法用于写出具有指定值的属性;

WriteStartAttribute方法用于书写属性的起始内容;

WriteEndAttribute 方法用于关闭上一个 WriteStartAttribute 调用。

下面的代码将演示如何把DataSet中的数据导出到XML文件中并做出详细说明。首先是定义一个类的静态方法DataSetToXML,其程序实现思想是先从DataSet中获得的省级数据,然后做循环来获得每个省所包含的地级市的数据,类似再做地级市数据的循环来获得每个地级市所包含的县(市)级数据。

 
        /// <summary>
        /// 将DataSet中的数据导出到XML文件中
        /// </summary>
        /// <param name="dsSet">要导出的DataSet</param>
        /// <returns>返回1表示方法执行成功,否则返回为-1</returns>
        public static int DataSetToXML(DataSet dsSet)
        {
            //判断当前返回的DataSet是否为空,为空则返回-1
            if (dsSet == null) return -1;
 
            //对XML文件进行必要的设置
            XmlWriterSettings settings = null;
            settings = new XmlWriterSettings();
            if (settings == null) return -1;
            //设置相关属性值
            settings.Indent = true;
            settings.NewLineOnAttributes = false;
 
            //创建XML文件
            XmlWriter writer = null;
            writer = XmlWriter.Create(@"C:Chinadomain.xml", settings);
            if (writer == null) return -1;
 
            //开始写文档
            writer.WriteStartDocument();
 
            //开始写标签
            writer.WriteStartElement("China");
 
            int i = 0, j = 0, k = 0;
                     //获取省级数据的动态数组
            ArrayList provinceList = FindProvince(dsSet);
            for (i = 0; i < provinceList.Count; i++)
            {
                int iCur = (int)provinceList[i];
                writer.WriteStartElement("Province");
                writer.WriteAttributeString("name", (String)dsSet.Tables[0].Rows[iCur].ItemArray[1]);
                writer.WriteAttributeString("value", (String)dsSet.Tables[0].Rows[iCur].ItemArray[0]);
                //查找当前省的所有地级市
                ArrayList cityList = FindCity(dsSet, (String)dsSet.Tables[0].Rows[iCur].ItemArray[0]);
                for (j = 0; j < cityList.Count; j++)
                {
                    int jCur = (int)cityList[j];
                    writer.WriteStartElement("City");
                    writer.WriteAttributeString("name", (String)dsSet.Tables[0].Rows[jCur].ItemArray[1]);
                    writer.WriteAttributeString("value", (String)dsSet.Tables[0].Rows[jCur].ItemArray[0]);
                    //设置当前行的父行
                    dsSet.Tables[0].Rows[jCur].SetParentRow(dsSet.Tables[0].Rows[iCur]);
                    //查找当前地级市的所有县级市
                    ArrayList districtList = FindDistrict(dsSet, (String)dsSet.Tables[0].Rows[jCur].ItemArray[0]);
                    for (k = 0; k < districtList.Count; k++)
                    {
                        int kCur = (int)districtList[k];
                        writer.WriteStartElement("District");
                        writer.WriteAttributeString("name", (String)dsSet.Tables[0].Rows[kCur].ItemArray[1]);
                        writer.WriteAttributeString("value", (String)dsSet.Tables[0].Rows[kCur].ItemArray[0]);
                        //设置当前行的父行
                        dsSet.Tables[0].Rows[kCur].SetParentRow(dsSet.Tables[0].Rows[jCur]);
                        writer.WriteEndElement();
                    }
                    writer.WriteEndElement();
                }
                writer.WriteEndElement();
            }
            writer.WriteEndElement();
            writer.WriteEndDocument();
 
            //清空缓存并关闭文件
            writer.Flush();
            writer.Close();
            return 1;
        }
 
        /// <summary>
        /// 查找省级数据
        /// </summary>
        /// <param name="dsSet">要导出的DataSet</param>
        /// <returns>包含省级数据的动态数组</returns>
        private static ArrayList FindProvince(DataSet dsSet)
        {
            int i = 0;
            //申请返回列表空间
            ArrayList pResList = null;
            pResList = new ArrayList();
            if (pResList == null) return null;
 
            //循环查找省级数据
            for (i = 0; i < dsSet.Tables[0].Rows.Count; i++)
            {
                object[] s = dsSet.Tables[0].Rows[i].ItemArray;
                if (((String)s[0]).Substring(2, 4) == "0000")
                {
                    pResList.Add(i);
                }
            }
            return pResList;
        }
 
        /// <summary>
        /// 查找某个省的地级数据
        /// </summary>
        /// <param name="dsSet">要导出的DataSet</param>
        /// <param name="strProvince">某省的国标代码</param>
        /// <returns>包含某个省的地级数据的动态数组</returns>
        private static ArrayList FindCity(DataSet dsSet, String strProvince)
        {
            int i = 0;
            //申请返回列表空间
            ArrayList pResList = null;
            pResList = new ArrayList();
            if (pResList == null) return null;
 
            //循环查找地级数据
            for (i = 0; i < dsSet.Tables[0].Rows.Count; i++)
            {
                object[] s = dsSet.Tables[0].Rows[i].ItemArray;
                if (((String)s[0]).Substring(2, 4) != "0000" &&
                    ((String)s[0]).Substring(4, 2) == "00" &&
                    ((String)s[0]).Substring(0, 2) == strProvince.Substring(0, 2))
                {
                    pResList.Add(i);
                }
            }
            return pResList;
        }
 
        /// <summary>
        /// 查找某个地级市的县级数据
        /// </summary>
        /// <param name="dsSet">要导出的DataSet</param>
        /// <param name="strCity">某地级市的国标代码</param>
        /// <returns>包含某个地级市的县级数据的动态数组</returns>
        private static ArrayList FindDistrict(DataSet dsSet, String strCity)
        {
            int i = 0;
            //申请返回列表空间
            ArrayList pResList = null;
            pResList = new ArrayList();
            if (pResList == null) return null;
 
            //循环查找县级数据
            for (i = 0; i < dsSet.Tables[0].Rows.Count; i++)
            {
                object[] s = dsSet.Tables[0].Rows[i].ItemArray;
                if (((String)s[0]).Substring(2, 4) != "0000" &&
                    ((String)s[0]).Substring(4, 2) != "00" &&
                    ((String)s[0]).Substring(0, 4) == strCity.Substring(0, 4))
                {
                    pResList.Add(i);
                }
            }
            return pResList;
        }

上一页  1 2 3 4 5 6 7 8 9  下一页

Tags:应用 JScript XML

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接