zoukankan      html  css  js  c++  java
  • DOM属性

    查看任何标签的固有属性property:

    使用谷歌浏览器:Ctrl+Shift+I 开发者工具----点击Elements----点击a标签----点击Properties属性及其属性值。

    自定义属性(attribute)是不会显示的。

    以下是通用方法:

    搜狗:attribute class

    attribute: 增删改查 checked selected multiple readyOnly hidden title href src lang dir accesskey calss data classList
    <!DOCTYPE html>
    <html lang="en">
    <head>
    <meta charset="UTF-8">
    <title>Document</title>
    href="css/7-2.css"存在这个文件才有效
    <link rel="stylesheet" href="css/7-2.css">
    </head>
    <body>
    <a id="href" href="www.baidu.com" id="a" a="b">百度</a>
    <a id="baidu" href="www.baidu.com" id="a" a="b">百度</a>
    <div style="color:red;" onclick="alert('love you')" url="www.baidu.com" xxx="a" Yyy="b" xxx="b" title="love" src="sss" id="div">我爱你</div>
    <div>
    <input type="checkbox" value="北京" id="beijing">北京
    <input type="checkbox" value="上海" id="shanghai">上海
    <input type="checkbox" value="南京" id="nanjing">南京
    <input type="checkbox" value="南京" id="xiamen">厦门
    <input type="checkbox" value="南京" id="fuzhou" checked="1">福州
    </div>
    <div>
    <input id="man" type="radio" name="sex" value="man">男
    <input id="woman" type="radio" name="sex" value="woman">女
    </div>
    <div><select name="city" id="city">
    <option name="beijing" value="">北京</option>
    <option name="shanghai" value="">上海</option>
    <option name="xiamen" value="">厦门</option>
    <option name="fuzhou" value="" selected=true>福州</option>
    <option name="ningde" value="">宁德</option>
    </select></div>
    <div><input type="text" value="readOnly为true时只读不可修改" id="readOnly">
    <input type="text" value="disabled禁用" id="disabled"></div>
    <div>
    <input id]="accesskey1" type="text" value="accesskey不同系统组合键不同,alt+或者是ctrl+或者是shift+" accesskey="c">
    <input id]="accesskey2" type="text" value="accesskey不同系统组合键不同,alt+或者是ctrl+或者是shift+" accesskey="z">
    </div>
    <div id="hidden" style="border:2px solid red;">hidden表示隐藏对象,类似display="none"</div>
    <div style="text-align: center;" id="one"><bdo dir="RTL">芙蓉楼送辛渐</bdo></div>
    <div style="text-align: center;" id="one"><bdo dir="RTL">唐代:王昌龄</bdo></div>
    <div style="text-align: center;" id="two"><bdo dir="RTL">寒雨连江夜入吴,</bdo></div>
    <div style="text-align: center;" id="three"><bdo dir="RTL">平明送客楚山孤。</bdo></div>
    <div style="text-align: center;" id="four"><bdo dir="RTL">洛阳亲友如相问,</bdo></div>
    <div style="text-align: center;" id="five"><bdo dir="RTL">一片冰心在玉壶。</bdo></div>
    <div><input type="button" id="btnData" data-xxx-yyy="love" data-zzz="you"></div>
    <script src="js/domready.js"></script>
    <script>
    myReady(function(){
    var bntData=document.getElementById("btnData");
    //返回DOMStringMap{xxxYyy:"love",zzz:"you"},DOMStringMap是返回所有自定义data-xxx的属性名称/属性值 的对象集合。
    console.log(btnData.dataset);
    console.log(btnData.dataset.zzz);//返回 you 只有一个“-” data.属性名
    console.log(btnData.dataset.xxxYyy);// love 有多个“-” data.驼峰命名
    console.log(btnData.getAttribute("data-zzz"));//返回 you
    console.log(btnData.attributes.getNamedItem("data-xxx-yyy").nodeValue);//返回 love
    })
    </script>
    </body>
    </html>

    <!DOCTYPE html>
    <html lang="en">
    <head>
    <meta charset="UTF-8">
    <title>Document</title>
    href="css/7-2.css"存在这个文件才有效
    <link rel="stylesheet" href="css/7-2.css">
    </head>
    <body>
    <a id="href" href="www.baidu.com" id="a" a="b">百度</a>
    <a id="baidu" href="www.baidu.com" id="a" a="b">百度</a>
    <div style="color:red;" onclick="alert('love you')" url="www.baidu.com" xxx="a" Yyy="b" xxx="b" title="love" src="sss" id="div">我爱你</div>
    <div>
    <input type="checkbox" value="北京" id="beijing">北京
    <input type="checkbox" value="上海" id="shanghai">上海
    <input type="checkbox" value="南京" id="nanjing">南京
    <input type="checkbox" value="南京" id="xiamen">厦门
    <input type="checkbox" value="南京" id="fuzhou" checked="1">福州
    </div>
    <div>
    <input id="man" type="radio" name="sex" value="man">男
    <input id="woman" type="radio" name="sex" value="woman">女
    </div>
    <div><select name="city" id="city">
    <option name="beijing" value="">北京</option>
    <option name="shanghai" value="">上海</option>
    <option name="xiamen" value="">厦门</option>
    <option name="fuzhou" value="" selected=true>福州</option>
    <option name="ningde" value="">宁德</option>
    </select></div>
    <div><input type="text" value="readOnly为true时只读不可修改" id="readOnly">
    <input type="text" value="disabled禁用" id="disabled"></div>
    <div>
    <input id]="accesskey1" type="text" value="accesskey不同系统组合键不同,alt+或者是ctrl+或者是shift+" accesskey="c">
    <input id]="accesskey2" type="text" value="accesskey不同系统组合键不同,alt+或者是ctrl+或者是shift+" accesskey="z">
    </div>
    <div id="hidden" style="border:2px solid red;">hidden表示隐藏对象,类似display="none"</div>
    <div style="text-align: center;" id="one"><bdo dir="RTL">芙蓉楼送辛渐</bdo></div>
    <div style="text-align: center;" id="one"><bdo dir="RTL">唐代:王昌龄</bdo></div>
    <div style="text-align: center;" id="two"><bdo dir="RTL">寒雨连江夜入吴,</bdo></div>
    <div style="text-align: center;" id="three"><bdo dir="RTL">平明送客楚山孤。</bdo></div>
    <div style="text-align: center;" id="four"><bdo dir="RTL">洛阳亲友如相问,</bdo></div>
    <div style="text-align: center;" id="five"><bdo dir="RTL">一片冰心在玉壶。</bdo></div>
    <div><input type="button" id="btnData" data-xxx-yyy="love" data-zzz="you"></div>
    <script src="js/domready.js"></script>
    <script>
    myReady(function(){
    //var div=document.querySelector("div");
    //-----获取属性值-------
    //显示:NamedNodeMap {0: url, 1: xxx, 2: yyy, url: url, xxx: xxx, yyy: yyy, length: 3}
    //1,自定义属性全部为小写
    //2,多个属性重复,后面的会忽略
    //3,前面的数字表示索引,后面对应的是属性名称
    //4,固有属性取值:div.属性名称
    //5,获取任意属性的属性值:div.attributes[index] 或者 div.attributes["属性名称"]
    //6,获取任意属性的属性值:div.attributes.getNamedItem("属性名称").nodeValue);如果属性名称没有定义,那么就会直接报错! div.attributes.getNamedItem("属性名称") 获取的是对象
    /*console.log(div.attributes);//返回对象属性集合:namedNodeMap
    console.log(div.attributes.getNamedItem("xxx").nodeValue);//可以访问任意属性的属性值:a
    console.log(div.attributes.getNamedItem("id").nodeValue);//可以访问任意属性的属性值:div
    console.log(div.attributes[2]);//可以访问任意属性的属性值:yyy="b"
    console.log(div.attributes["yyy"]);//可以访问任意属性的属性值:yyy="b"
    console.log(div.title);//love 固有属性
    console.log(div.id);//div 固有属性
    console.log(div.xxx);//undefined xxx属于自定义属性,所以返回undefined*/

    //-----删除属性-------
    //var div=document.querySelector("div");
    // div.attributes.removeNamedItem("yyy");//删除yyy属性

    //-----创建属性-------
    /*var div=document.querySelector("div");
    var attr=document.createAttribute("data-list");//创建"data-list"属性对象
    attr.value="love-you";//给属性对象attr赋值
    div.attributes.setNamedItem(attr);//把新属性对象attr添加到属性集合中去,类似创建子节点
    div.attributes.getNamedItem("data-list");//获取属性值时必须使用data-list属性名称获取*/
    /*//创建属性有点类似创建子节点
    var div=document.querySelector("div");
    var sp=document.createElement("span");
    var txt=document.createTextNode("fuck");
    sp.appendChild(txt);
    div.appendChild(sp);*/

    //====getAttribute(a)/setAttrbute(a,value)/removeAttribute(a)====
    //-----该方法通用IE7以下不兼容-----

    //通用取值的方法:
    /*var div=document.getElementById('div');
    console.log(div.getAttribute("style"));//getAttribute侧重属性值,所以取的是值:color:red;
    console.log(div.style);//div.style取固有属性值,侧重的是style对象: CSSStyleDeclaration CSSStyle说明
    console.log(div.getAttribute("onclick"));//getAttribute侧重属性值,所以取的是值:alert('love you')。
    //div.onclick取固有属性,侧重的是onclick单击事件对象。返回:f onclick(event){ alert("love you")}
    console.log(div.onclick);*/

    //-----div.getAttribute("属性名称");------

    //1,getAttribute()能获取元素的固有属性,也能获取元素的自定义属性
    //3,getAttribute()方法只能获取单个元素节点的属性值,且不属于document对象,属于单个元素节点对象
    /* var div = document.getElementById("div");
    console.log(div.getAttribute("src"));//返回自定义属性值:sss
    console.log(div.getAttribute("title"));//返回固有属性值:love

    //-----div.setAttribute()-----
    var div=document.getElementById("div");
    div.setAttribute("xxx","top");//修改自定义属性值
    div.setAttribute("right","100px");//增加自定义属性
    div.setAttribute("onclick","alert(1)");//修改固定属性值
    div.setAttribute("style","color:blue");//修改固定属性值

    //-----div.removeAttribute()-----
    var div=document.getElementById("div");
    div.removeAttribute("xxx");//删除div对象指定的属性
    div.removeAttribute("style");//删除div对象指定的属性
    div.removeAttribute("onclick");//删除div对象指定的属性*/

    //----复选款-----
    var beijing=document.getElementById("beijing");
    var shanghai=document.getElementById("shanghai");
    var nanjing=document.getElementById("nanjing");
    var xiamen=document.getElementById("xiamen");
    var fuzhou=document.getElementById("fuzhou");
    //checked的所有值都会进行隐式转换,其中null "" undefined false 0 返回是false,其他所有值都是返回true。
    beijing.checked=true;//true boolean布尔类型
    shanghai.checked=1;//1,Number类型,返回true
    nanjing.checked={};//{}空对象的集合,但空对象也是一个对象,所以返回true。
    xiamen.checked=[];//[]空数组对象,虽然数组是空的,但是还是一个数组对象,返回true
    // fuzhou.checked="love";//"love"字符串,返回true
    // fuzhou.checked="";//隐式转换返回false,未选中
    // fuzhou.checked=null;//隐式转换返回false,未选中
    // fuzhou.checked=undefined;//隐式转换返回false,未选中

    //fuzhou.removeAttribute("checked");如果直接在标签对象中设定checked="1",再removeAttribute("checked"),除了火狐无法删除,其他都可以删除。如果要不选中,反正直接使用方法设定:fuzhou.checked="";即可。
    //注意,如果是在标签对象中设定如果我们手动设置了checked=true/"string"/1/object,那么我们是无法通过removeAttribute("checked")移除的。如下:
    // fuzhou.checked=1;//隐式转换返回true,选中
    // fuzhou.removeAttribute("checked");
    fuzhou.checked="";//涉及到checked的属性设置时,一定使用fuzhou.checked=0/1.
    //fuzhou.setAttribute("checked","false");//最新火狐浏览器存在不同,所以绝对不能这么设置。

    //-----单选按钮radio,注意同一组的单选按钮name值一定要相等-----
    /*var man=document.getElementById("man");
    var woman=document.getElementById("woman");
    // man.checked=1;//选中man对象,单选按钮只能选中一个。
    woman.checked=1;//选中woman对象,单选按钮只能选中一个。设定两个,后面一个生效。
    var sex=document.getElementsByName("sex");//返回去所有name="sex"的NodeList类数组对象
    for (var i = 0; i < sex.length; i++) {//查看那个对象被选中
    if (sex[i].checked==true) {//如果被选中返回checked=true
    console.log(sex[i].value);//返回所有被选中的对象
    }
    }*/

    //------下拉列表单选列表-------
    /*var select=document.getElementById("city");
    var options=select.options;//返回HTMLOptionsCollection类数组对象集合
    options[0].selected=1;
    options[1].selected=1;//如果下拉列表设置两个true,则返回最后一个true
    // console.log(options);//返回HTMLOptionsCollection类数组对象集合
    for (var i = 0; i < options.length; i++) {//遍历所有options,查看那些option是被选中的
    if (options[i].selected==true) {
    console.log(options[i]);//<option name="shanghai" value="">上海</option>
    console.log(typeof options[i]);//返回object
    }
    }*/
    //------下拉列表多选列表-------
    var select=document.getElementById("city");
    var options=select.options;
    //隐式转换0,"",undefined,null返回false,其他返回true。
    //select.multiple=false;时,下拉列表为单选列表,只能选一个项
    select.multiple="multiple";
    options[0].selected="1";//选中设定索引对应的列表项
    options[1].selected="1";//选中设定索引对应的列表项
    options[2].selected="1";//选中设定索引对应的列表项
    for (var i = 0; i < options.length; i++) {//遍历所有options,查看哪些option是被选中的
    if (options[i].selected==true) {
    console.log(options[i]);//<option name="shanghai" value="">上海</option>
    // console.log(typeof options[i]);//返回object
    }
    }

    //------readOnly只读属性-------
    /*var readOnly=document.getElementById("readOnly");
    readOnly.readOnly=true;//readOnly只读属性。false 可以修改;true 只读不可修改。*/

    var disabled=document.getElementById("disabled");
    //都会进行隐式转换,null "" undefined 0等返回false,其他返回true
    // disabled.disabled="string";
    // disabled.disabled=3;
    disabled.disabled=[];//值是空数组对象,返回true。

    //------hidden适合所有标签-------
    var hidden=document.getElementById("hidden");
    //都会进行隐式转换,null "" undefined 0等返回false,{},[]等其他返回true
    hidden.hidden={};//返回true,即隐藏

    //====以下是常见字符串属性====
    //1,id
    /*var one=document.getElementById("one");//id是唯一的,有多个,只取文档前面一个。
    console.log(one.innerHTML);//返回: 芙蓉楼送辛渐*/

    //1,title
    /*document.getElementById("five").title="芙蓉楼送辛渐";
    document.getElementById("four").title="芙蓉楼送辛渐";*/

    //3,href
    //href是Hypertext Reference的缩写。意思是指定超链接目标的URL。是css代码的一种。 [1] href 属性的值可以是任何有效文档的相对或绝对URL,包括片段标识符和JavaScript代码段。
    //href="css/7-2.css"存在这个文件才有效
    // <a href="www/baidu.com">百度</a>
    // <link rel="stylesheet" href="a.css">
    var link=document.getElementsByTagName("link")[0];
    console.log(link.href);//返回:file:///D:/%E5%89...
    var href=document.getElementById("href");
    href.href="http://www.imooc.com";//设置固定属性
    console.log(href.href);//返回:file:///D:/%E5%89%8...

    //4,src
    //HTML中src是source的缩写,这里是源文件的意思。“source”本身是“源”的意思。
    //<img src="路径">
    <script src=""></script> //链接到javascript路径
    <iframe src=""></iframe>框架内表示的页面路径

    //5,lang
    <html lang="zh-CN">.....</html>
    lang="zh"属性
    1,协助搜索引擎搜索
    2,协助语音合成
    3,协助符号,印体字高质量印刷
    4,协助选择一套引号
    5,协助解决连字符,空格,绑定等问题
    6,协助拼写检查和语法检查
    //lang="zh-CN" , 简体中文,
    //lang="zh" ,包括简体中文,繁体中文,方言等。
    //lang="en" 英文,如果网页有中文,则跳过不翻译。所以最好都改为中文,以防对中文翻译不准确。
    <meta charset="UTF-8"> 这句必须放在head的第一句,因为网页是由上至下读取的,如果放在之前则不是以UTF-8的字符读取。
    <title>中文</title> 比如这个放在 meta charset="UTF-8" 之前,title就有可能出现乱码或者空白。

    //6,dir
    //dir="RTL" 表示文本从右往左
    //dir="LTR" 表示文本从左往右
    <bdo dir="RTL">ABCDEF.</bdo>//显示:.FFEDCBA

    //7,name value accesskey
    //name用来标识控件的名字,作为引用控件的依据,返回的是表单控件
    //通常是在表单中根据name值进行序列化,同时将该值发送给后端
    //value,通过name.value/通过js获取obj.value获取到值,发送给后端。
    var accesskey1=document.getElementById("accesskey1");
    var accesskey2=document.getElementById("accesskey2");
    //JS中所有属性都必须使用驼峰命名,否则报错,如:accessKey
    accesskey1.accessKey="c";//设置alt+c快捷键立即在输入框中获得焦点
    accesskey2.accessKey="z";//设置alt+z快捷键立即在输入框中获得焦点

    //8,class
    //class其实是关键字,所以重新给命名:className,取值设置都使用该名称
    var baidu=document.getElementById("baidu");
    baidu.className="one";//给baidu对象设定了一个新的类class,其他类名都会被覆盖

    //9,data
    //data是数据 date是日期
    var bntData=document.getElementById("btnData");
    //返回DOMStringMap{xxxYyy:"love",zzz:"you"},DOMStringMap是返回所有自定义data-xxx的属性名称/属性值 的对象集合。该对象ie10以及IE以下版本不支持,其他主流浏览器都支持
    console.log(btnData.dataset);
    console.log(btnData.dataset.zzz);//返回 you 只有一个“-” data.属性名
    console.log(btnData.dataset.xxxYyy);// love 有多个“-” data.驼峰命名
    console.log(btnData.getAttribute("data-zzz"));//返回 you
    console.log(btnData.attributes.getNamedItem("data-xxx-yyy").nodeValue);//返回 love

    //10,class见下面代码

    //11,classList见下面代码总结
    })
    </script>
    </body>
    </html>

    <!----10,class-----
    ----以下全部使用原生代码对class进行操作----
    ----最后使用系统封装好的classList进行调用---->
    <!DOCTYPE html>
    <html lang="en">
    <head>
    <meta charset="UTF-8">
    <title>Document</title>
    <script src="js/domready.js"></script>
    <style>
    div{
    height: 800px;
    border: 1px solid red;
    }
    </style>
    </head>
    <body class="aaa bbb ccc">TEXT
    <script>
    var CC={//自己写的,差空格没处理
    getClass: function(ele){
    return ele.className.split(" ");
    },
    hasClass: function(ele, cls){
    return -1 < ele.className.indexOf(cls);
    },
    addClass:function(ele,cls){
    if (this.hasClass(ele,cls)) {//this表示当前对象 CC
    return ele.className;
    }else{
    ele.className+=" "+"fff";
    return ele.className;
    }
    },
    removeClass:function(ele,cls){
    if (this.hasClass(ele,cls)) {//this表示当前对象 CC
    return ele.className.replace("aaa"," ")
    }
    return ele.className;
    },
    toggleClass: function(ele,cls){//this表示当前对象 CC
    if (this.hasClass(ele,cls)) {//如果cls存在,则删除
    return this.removeClass(ele,cls);//this表示当前对象 CC
    }else{//如果cls不存在,则添加
    return this.addClass(ele,cls);//this表示当前对象 CC
    }
    }
    };
    /*
    //这是标准处理方法获取对象class
    var CC = {//声明一个类CC,CC.函数名
    getClass: function(ele) {//得到对象的所有类名,并且转换成数组
    return ele.className.replace(/s+/, " ").split(" ");
    },

    hasClass: function(ele, cls) {//判断指定对象中的类是否存在指定类名
    return -1 < (" " + ele.className + " ").indexOf(" " + cls + " ");
    },

    addClass: function(ele, cls) {//指定对象添加类名
    if (!this.hasClass(ele, cls))
    ele.className += " " + cls;
    },

    removeClass: function(ele, cls) {//指定对象移除类名
    if (this.hasClass(ele, cls)) {
    var reg = new RegExp('(\s|^)' + cls + '(\s|$)', "gi");
    ele.className = ele.className.replace(reg, " ");
    }
    },

    //指定对象,指定类名,如果指定类名存在则移除,如果不存在则添加。
    toggleClass: function(ele, cls) {
    if (this.hasClass(ele, cls)) {
    this.removeClass(ele, cls);
    } else {
    this.addClass(ele, cls);
    }
    }
    };*/
    myReady(function(){
    var body=document.body;
    // console.log(CC.getClass(body));//(3) ["aaa", "bbb", "ccc"]
    // console.log(CC.hasClass(body,"aaa"));//true
    // console.log(CC.addClass(body,"fff"));//aaa bbb ccc fff
    // console.log(CC.removeClass(body,"aaa"));//bbb ccc fff
    console.log(CC.toggleClass(body,"fff"));//aaa bbb ccc fff
    console.log(CC.toggleClass(body,"aaa"));// bbb ccc fff
    });
    </script>
    </body>
    </html>

    <!----11,classList-----
    console.log(ele.classList); //返回一个集合:DOMTokenList(3) ["aaa", "bbb", "ccc", value: "aaa bbb ccc"] ---->
    <!DOCTYPE html>
    <html lang="en">
    <head>
    <meta charset="UTF-8">
    <title>Document</title>
    <script src="js/domready.js"></script><!---一定要导入,否则有误,见搜狗domready----->
    </head>
    <body class="aaa bbb ccc">
    <script>
    var CC={//设置一个类
    //ele.classList.add(cls); 给ele对象,添加cls类名
    addClass: function(ele,cls){
    ele.classList.add(cls);//返回未定义undefined
    },

    //ele.classList.remove(cls); 给ele对象,添加cls类名
    removeClass: function(ele,cls){
    ele.classList.remove(cls);//返回未定义undefined
    },

    //ele.clssList.contains(cls); 判断ele对象中是否存在cls类名
    hasClass: function(ele,cls){
    ele.classList.contains(cls);//返回boolean布尔类型
    },

    //ele.classList.toggle(cls); 判断ele是否存在cls类,存在就删除cls,不存在就添加cls
    toggleClass: function(ele,cls){
    //返回boolean布尔类型,
    //返回true:body对象不存在"bbb"类名,向body添加"bbb"类
    //返回false:body对象存在"bbb"类名,删除body中的"bbb"类
    ele.classList.toggle(cls);
    }
    }
    myReady(function(){
    /*var body=document.body;//获取body对象
    console.log(body.classList);//返回:DOMTokenList(3) ["aaa", "bbb", "ccc", value: "aaa bbb ccc"]
    console.log(body.classList.add("ddd"));//向body添加"ddd"类,返回未定义undefined
    console.log(body.className);//返回body对象的class的值:aaa bbb ccc ddd
    console.log(body.classList.remove("aaa"));//删除body中的"ddd"类,返回未定义undefined
    console.log(body.className);//返回body对象的class的值:bbb ccc ddd
    //返回boolean布尔类型,true表示存在类"aaa",false表示不存在类"aaa";
    console.log(body.classList.contains("aaa"));//返回false

    //返回boolean布尔类型,body.className取决于上一行操作
    //返回true:body对象不存在"bbb"类名,向body添加"bbb"类
    //返回false:body对象存在"bbb"类名,删除body中的"bbb"类
    console.log(body.classList.toggle("bbb"));//返回 false
    console.log(body.className);//返回 ccc ddd
    console.log(body.classList.toggle("bbb")); //返回 true
    console.log(body.className);//返回 ccc ddd bbb*/

    var body=document.body;//获取body对象
    console.log(body.className);//返回 aaa bbb ccc
    CC.addClass(body,"ddd");//向body添加"ddd"类,返回未定义undefined
    CC.removeClass(body,"aaa");//删除body中的"aaa"类,返回未定义undefined
    CC.hasClass(body,"aaa");//返回false 不存在"aaa"
    CC.toggleClass(body,"bbb");//返回 false 删除"bbb"
    console.log(body.classList.value);//返回 ccc ddd
    console.log(body.className);//返回 ccc ddd
    });
    </script>
    </body>
    </html>

  • 相关阅读:
    基于Windows Mobile 5.0的GPS应用程序开发
    iis6应用程序池被自动禁用问题 应用程序池'DefaultAppPool' 被自动禁用
    Axapta物流模块深度历险(八)
    AX的报表服务器(一)
    AX的企业门户(一)
    SQL Server2005 Reporting Services 管理站点
    SQL Server2005 Reporting Services的卸载
    耐心的解决问题
    危险操作符
    慢慢的坚持啊
  • 原文地址:https://www.cnblogs.com/Knowledge-is-infinite/p/10903152.html
Copyright © 2011-2022 走看看