我有一个DTREE的树,在每个结点后,有添加,修改,删除这三个按钮,现在的情景是,
我要点修改按钮,把该结点的一系列详细信息读取出来,并用一个DIV弹出的层来显示.   我的想法是,在STRUTS2的ACTION中,返回该结点的具体信息,比如以LIST的形式返回,再用JSON的方式返回给
页面,同时设置struts2的这个ACTION的RESULT TYPE为JSON,
则在前台中,如下:
  $.ajax(
        {
                 type:"post",
                 url:"../../../menu/listParentNodes.action",
             dataType:"json",
                               data:"treeNodes.sort="+sort+"&treeNodes.id=" + id + "&treeNodes.name=" + myFilterEncode(currentNodeName) + "&treeNodes.pid=" + currentNodePid+"&treeNodes.url="+currentNodeUrl,
         success:function(data)
                 {
            alert(data.parentNodesList[0].id);
                 $("#addDiv").html(data);
......................  这里在前台已经可以把要修改信息的结点的一个属性ALERT出来了,但现在由于属性很多,我要用一个单独的JSP页面来展示出来,但
我又不想用WINDOW.OPEN的方式,想尽量用JQUERY的方式,那请问应该如何搞比较好呢?

解决方案 »

  1.   

    function copyPaste(action, dtnode) {
    switch (action) {
    case "cut" :
    case "copy" :
    clipboardNode = dtnode;
    pasteMode = action;
    break;
    case "paste" :
    if (!clipboardNode) {
    alert("Clipoard is empty.");
    break;
    }
    if (pasteMode == "cut") {
    // Cut mode: check for recursion and remove source
    var isRecursive = false;
    var cb = clipboardNode.toDict(true, function(dict) {
    // If one of the source nodes is the target, we must not
    // move
    if (dict.key == dtnode.data.key)
    isRecursive = true;
    });
    if (isRecursive) {
    alert("Cannot move a node to a sub node.");
    return;
    }
    dtnode.addChild(cb);
    clipboardNode.remove();
    } else {
    // Copy mode: prevent duplicate keys:
    var cb = clipboardNode.toDict(true, function(dict) {
    dict.title = "Copy of " + dict.title;
    delete dict.key; // Remove key, so a new one will be
    // created
    });
    dtnode.addChild(cb);
    }
    clipboardNode = pasteMode = null;
    // Must enable context menu for new nodes
    bindContextMenu("#ajax-tree");
    break;
    default :
    alert("Unhandled clipboard action '" + action + "'");
    }
    };
      

  2.   

    switch (event.which) { // Open context menu on [Space] key (simulate right click)
    case 32 : // [Space]
    $(dtnode.span).trigger("mousedown", {
    preventDefault : true,
    button : 2
    }).trigger("mouseup", {
    preventDefault : true,
    pageX : dtnode.span.offsetLeft,
    pageY : dtnode.span.offsetTop,
    button : 2
    });
    return false; // Handle Ctrl-C, -X and -V
    case 67 :
    if (event.ctrlKey) { // Ctrl-C
    copyPaste("copy", dtnode);
    return false;
    }
    break;
    case 86 :
    if (event.ctrlKey) { // Ctrl-V
    copyPaste("paste", dtnode);
    return false;
    }
    break;
    case 88 :
    if (event.ctrlKey) { // Ctrl-X
    copyPaste("cut", dtnode);
    return false;
    }
    break;
    }
      

  3.   

    点击按钮,弹出层显示相关信息
    插件:BlockUI
    1.BlockUI show,提示信息:处理中
    2.BlockUI show,可以显示一个div
    3.赋值给div,然后隐藏BlockUI大概就样