XPages数据库打开对话框自定义控件

XPages Database Open Dialog Custom Control

本文关键字:自定义控件 打开对话框 数据库 XPages      更新时间:2023-09-26

随着新版的XPages数据库打开对话框自定义控件从openntf由Lars Buntrock我已经无法传递回调的输出到Java脚本服务器端,甚至保存返回值到数据库。有人知道怎么解决这个问题吗?这个对话框是用CSJS调用的,代码如下:

$.openAppDlgCs.show({load:true, fade:true, callback:setFields, passThrough:''});

下面是setFields代码:

function setFields() {
     var dbTitle = "";
    var dbPath = "";
    var dbSrv = "";
    var dbHttpUrl = "";
    var dbNotesUrl = "";
    var dbReplicaId = "";
    var dbbin = "";
try {
    if (arguments.length > 0) {
        var db = arguments[0];
        var passThrough = arguments[1]; 
        dbTitle = (typeof db.title === "undefined") ? "" : db.title;
        dbPath = (typeof db.path === "undefined") ? "" : db.path;
        dbSrv = (typeof db.server === "undefined") ? "" : db.server;
        dbHttpUrl = (typeof db.httpUrl === "undefined") ? "" : db.httpUrl;
        dbNotesUrl = (typeof db.notesUrl === "undefined") ? "" :  db.notesUrl;
    dbReplicaId = (typeof db.replicaId === "undefined") ? "" :     db.replicaId;
        dbbin = dbTitle;
    }
    $("#dbTitle").text(dbTitle);
    $("#dbServer").text(dbSrv);
    $("#dbPath").text(dbPath);
    $("#dbHttpUrl").text(dbHttpUrl);
    $("#dbNotesUrl").text(dbNotesUrl);
    $("#dbReplicaId").text(dbReplicaId);
    $("#dbbin").val(dbbin);//
} catch (e) {
    console.log(arguments.callee.name);
    console.log(e);
}
};

输出显示如下代码:

 <div class="form-group">
   <label for="dbTitle">Title</label>
   <span class="form-control" id="dbTitle"></span>
 </div> 

正如我在OpenNTF上写的那样,我不确切地知道,如果我正确理解你的问题:-(。但是,如果您需要在服务器端使用选定的db数据,则可以使用passThrough函数。

按如下方式更改click-event:
onclick = " .openAppDlgCs美元。show({load:true, fade:true, callback:setFields, passThrough:test});"

如你所见,我们为对话框打开函数设置了一个函数"test"。

在"setFields"函数中(在您的示例中)设置passThrough函数:

如果参数。长度> 0){
Var db = arguments[0];
var passThrough = arguments[1];
透传();

写一个新函数"test"

函数test() {
//在这里运行例如Dojo或JQuery ajax调用到XAgent并传递db数据
}

希望有所帮助