当前位置: 代码迷 >> Lotus >> ajax在domino中的应用-视图readviewentries有关问题
  详细解决方案

ajax在domino中的应用-视图readviewentries有关问题

热度:77   发布时间:2016-05-05 07:06:48.0
ajax在domino中的应用-视图readviewentries问题
现在有两个列表域,一个视图,分别为fldA,fldB,view1我想在页面不刷新的前提下实现以下的功能,当fldA中的值改变时,fldB将在view1中以fldA为关键字查询,然后将查到的值赋给fldB域中。我想用的方法是在fldA的onchange方法中写个JS,
url= "http://server1/testajax.nsf/view1?readviewentries "
var   req   =     new   ActiveXObject( "Microsoft.XMLHTTP ");
req.open( "GET ",url,false);   '将url传进去
result   =   req.responseXML;     '返回的值
......
下面我就不知道如何实现了,或者有其他好的方法的朋友支招,谢谢!




------解决方案--------------------
url里应该放一个后台代理的地址,把fldA的值当作关键字传进去,然后查询,得到结果集,最后把生成view的html代码传回给fldB。ActiveXObject应该可以返回字符集的,不用返回xml。

我没写过刷新view,不过原理应该一样。。。
------解决方案--------------------
js大概要这么写,看视图结构了,如果要检索的数据多,还是用代理作搜索的工作,也不用刷新页面
var xmlElement=xmlHttp.responseXML.documentElement;
var len=Number(xmlElement.getAttribute( 'toplevelentries '));
var flda;
var fldb
var i;
for(i=0;i <len;i++)
{
if(flda.value==xmlElement.childNodes[i].childNodes[0].text)
fldb.value=xmlElement.childNodes[i].childNodes[1].text;
}
------解决方案--------------------
url= "http://server1/testajax.nsf/view1?readviewentries "
var req = new ActiveXObject( "Microsoft.XMLHTTP ");
req.open( "GET ",url,false); '将url传进去
result = req.responseXML; '返回的值


这种方法不太好,为什么呢,因为你读取的是整个视图,一般我们建立把数据量减低,

所以一般在readviewentries后面加参数,尽量找到比较准确的数据(参考

http://www.xujiajie.net/viewthread.php?tid=5153
),至于结果处理就很简单了
alert(result) 你看到什么了,那你就分析什么吧,这种代码楼上的兄弟也说了很多
  相关解决方案