Frage

I am getting the json content sent from a servlet properly but when I'm trying to set it inside the dialog box using a for loop I'm not able to,only the last element is getting updated. I can set it manually by specifying each element which i do not want to.

my js file

     goog.events.listen(request, "complete", function(e){
                var xhr = /** @type {goog.net.XhrIo} */ (e.target);
                res = xhr.getResponseJson();
                var dialog1 = new goog.ui.Dialog(null, true);
                var mycount = count(res);
            for(var m=0;m<mycount;m++)
            {
                dialog1.setContent("<a id='user' href='#'>"+res[m].user+
                                    "</a><br>");
            }
            /*
    dialog1.setContent(
     "<a id='user1' href='#'>"+res[0].user+"</a><br><a id='user2' href='#'>"
      +res[1].user+"</a><br><a id='user3' href='#'>"
      +res[2].user+"</a><br><a id='user4' href='#'>"
      +res[3].user+"</a><br><a id='user5' href='#'>"
      +res[4].user+"</a><br><a id='user6' href='#'>"+res[5].user+"</a>");
 */ //What I was using previously and want to get rid of it
                dialog1.setTitle('User Switch');
                dialog1.setVisible(true);
                dialog1.getButtonSet(false);
                for(var i=1;i<mycount+1;i++){
                goog.events.listen((goog.dom.getElement('user'+i)), goog.events.EventType.CLICK,
                function(e) {
                            myval = (goog.dom.getElement(e.target).innerHTML);
                            goog.dom.setTextContent(goog.dom.getElement('update'),myval);   
                            dialog1.dispose();
                        });
        }
Json sent from my servlet

     PrintWriter out = resp.getWriter();
         JSONArray json = new JSONArray();
         JSONObject userdet1 = new JSONObject();
         JSONObject userdet2 = new JSONObject();
         JSONObject userdet3 = new JSONObject();
         JSONObject userdet4= new JSONObject();
         JSONObject userdet5= new JSONObject();
         JSONObject userdet6= new JSONObject();
         userdet1.put( "user", "arjun1.daglur1@mesi.com");
         userdet2.put( "user", "arjun2.daglur2@mesi.com");
         userdet3.put( "user", "arjun3.daglur3@mesi.com");
         userdet4.put( "user", "arjun4.daglur4@mesi.com");
         userdet5.put( "user", "arjun5.daglur5@mesi.com");
         userdet6.put( "user", "arjun6.daglur6@mesi.com");
           json.add(userdet1);
           json.add(userdet2);
           json.add(userdet3);
           json.add(userdet4);
           json.add(userdet5);
           json.add(userdet6);
            out.print(json);
            out.close();
War es hilfreich?

Lösung

Finally figured it out!

var content = new Array();
for(var k=0;k<mycount;k++)
  {
    content[k] = ("<a href='#' id=user"+k+">"+res[k].user+"</a><br>");
  }
dialog1.setContent(content.join(""));
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top