如何在同一页面中多次使用dhtmlXCombo

时间:2013-10-17 11:27:25

标签: ajax dhtmlx

我有一个JSP,我正在尝试使用dhtmlXCombo组件。

在JSP中,我有一个包含大约100多行的表,每行都有一个订单的详细信息,在每行的最后一列中我想要一个dhtmlXCombo组件,我可以更新每个订单的状态。 dhtmlXCombo有一个从数据库中检索的状态选项列表。

我按如下方式创建dhtmlXCombo:

var z = new dhtmlXCombo("testA", "testA", 200);
z.loadXML("getStatus.xml");

没有问题但是后来在代码中我循环遍历数组列表并创建表行,因为我创建了每一行我希望能够说:

<div id="testA" style="width:200px; height:30px;"></div>

因为我想在每一行中使用相同的dhtmlXCombo,但这不起作用,因为div id在页面中必须是唯一的,所以我不能为我创建的每一行放置div id =“testA”(如果我那么它只创建第一个dhtmlXCombo)。

有关如何解决此问题的任何建议?基本上我想在同一页面中多次使用相同的dhtmlXCombo。

感谢。

1 个答案:

答案 0 :(得分:0)

首先检索xml,并在每次创建新的dhtmlXCombo时重复使用它。

例如使用jQuery检索xml:

<div id="testA" style="width:200px; height:30px;"></div>
<div id="testB" style="width:200px; height:30px;"></div>
<div id="testC" style="width:200px; height:30px;"></div>

$(function () {
    $.ajax({
        type: "GET",
        url: "getStatus.xml",
        dataType: "xml"
    }).done(function (response) {
        var testA = new dhtmlXCombo("testA", "testA", 200),
            testB = new dhtmlXCombo("testB", "testB", 200),
            testC = new dhtmlXCombo("testC", "testC", 200);

        testA.loadXMLString(response);
        testB.loadXMLString(response);
        testC.loadXMLString(response);
    });
});

或者,如果您不使用jQuery,可以使用dhtmlxAjax

dhtmlxAjax.get("getStatus.xml", function (loader) {
    var response = loader.xmlDoc.responseXML;
    // ...
});