Fetch XML Link Entity 数量限制10个,那就不用LinkEntity吧

页面上有一个Lookup field,当选择一个记录时,同时要把这个记录的其他值也带到本页面来,其中有好多是Lookup来的。

开始我用LinkEntity来取得它们的名字值,但是后来发现LinkEntity有数量限制,每条查询语句只能有10个LinkEntity,超过就报错,Advanced Find里也是一样的。

所以,用LinkEntity并不是一个好办法,而且我只是要取得一个名字的值而已,直觉告诉我不用那么麻烦的。

研究了一下,其实Fetchxml取的Lookup的值,不仅有GUID,名字的值也取到了,只不过名字值要经过一定的步骤转化才能拿到。

下面是具体方法:

首先,我们从返回的xml对象中取出我们的要的元素:

var county = oXmlDoc.getElementsByTagName("my_county")[0];

调用一个方法来取得名字值:

var countyName= GetAttributeName(county);

GetAttributeName方法,其实就是把字符串转化为Xml Node,再对里面的属性进行分析,得到我们要的那个属性的值:

function GetAttributeName(xmlNode) {
    var xmlStr = xmlNode.xml;
    var doc;
    if (window.ActiveXObject) {
      doc = new ActiveXObject('Microsoft.XMLDOM');
        doc.async = 'false';
        doc.loadXML(xmlStr);
    } else {
        var parser = new DOMParser();
        doc = parser.parseFromString(xmlStr, 'text/xml');
    }
    var name = doc.documentElement.attributes.getNamedItem("name").text;
    return name;
}

好的,这样Id和Name都有了,就可以给目标设值了。

posted @ 2012-05-28 12:58  Joy Zhong  阅读(2093)  评论(0编辑  收藏  举报