608 messaggi dal 11 febbraio 2013
Ho un webmethod in una pagina aspx che restituisce una stringa di articoli
stringBuilder.Append("<div class=\"col-1-of-3\">");...ecc


nella pagina ho un semplice div
 <div class="articoli"></div>


chiamando il metodo vorrei accodare html ma non ci rieco:
ispezionando il markup vedo che non ho html nella pagina

$.ajax({
                type: "POST",
                url: "...",
                data: "{... }",
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function (data) {
                    if (data != '') {
                        //accodo dati a div
                        var currentHtml = $('.articoli').clone();
                        $('.articoli').html(currentHtml + data.d);
                       
                    }


nella pagina vengono visualizzati correttamente i div ad ogni scroll ma non ho html nel DOM

come posso fare?
10.665 messaggi dal 09 febbraio 2002
Contributi
Ciao,
prova semplicemente con il metodo append di jQuery, che ti permetterà di accodare HTML ad un contenitore come il tuo "articoli".

$('.articoli').append(data.d);


Ecco un fiddle dimostrativo:
https://jsfiddle.net/w5rh7o3q/2/

ciao,
Moreno

Enjoy learning and just keep making
608 messaggi dal 11 febbraio 2013
Grazie Moreno,
avevo provato append e funziona bene ma non capisco perchè non ho html nella pagina.

Tutto funziona bene (ad ogni scroll vengono aggiunti i div) però se faccio 'ctrl + U' non vedo html !

ho bisogno di interagire col DOM e non ci riesco !

Ovvero dopo aver visitato il dettaglio dell'articolo ritorno al catalogo che viene correttamente caricato
fino alla pagina dell'articolo visitato

pero il codice sotto (che dovrebbe scrollare in basso) non va:
jQuery.fn.init [prevObject: jQuery.fn.init(1)] // ***

in effetti nel DOM non cè

//SCROLL ALL'ELEMENTO DI DETTAGLIO VISITATO 
        if (sessionStorage.getItem('productSelected') != null) {
          
            $('.articoli').empty(); //vuoto il div

            Load(0, sessionStorage.getItem('numberProductsShowed')); //carico tutti gli articoli visualizzati
           
            scrollToId = sessionStorage.getItem('productSelected');//ottengo id del prodotto nel div

            positionDiv = $(scrollToId);
              console.log(positionDiv);//***
            if (positionDiv.length) {
               $("html, body").animate({ scrollTop: ('#' + positionDiv).offset().top }, 1000);
            }

        }


cosa sbaglio ?
Modificato da jjchuck il 21 febbraio 2018 14.50 -
3.782 messaggi dal 28 gennaio 2003
non credo che sbagli niente.
Prova con F12. Li dovresti vedere l'html generato.

Pietro
608 messaggi dal 11 febbraio 2013
Si se ispeziono il browser vedo i div ma con Ctr U non li vedo

Non mi spiego cmq quel risultato di jquery dove mi 'dice' che non trova l'oggetto

cosa debbo fare :(
3.782 messaggi dal 28 gennaio 2003
non so. Queste due istruzioni mi funzionano allo stesso modo

$("#div1").html($("#div1").html() + "<hr>" + data);
$("#div1").append("<hr>").append(data);

è un esempio sul mio computer

Pietro
608 messaggi dal 11 febbraio 2013
Si infatti funzionano anche a me

pero ottengo sempre

jQuery.fn.init [prevObject: jQuery.fn.init(1)]

Questo è il codice...
var Skip = 9;
        var Take = 9;
        var numberProductsShowed;
        var productSelected;
        var scrollToId;
        var positionDiv;
        var divPosition;

        $('.articoli').on('click', '.js-select', function () {
            sessionStorage.removeItem('numberProductsShowed');
            sessionStorage.removeItem('productSelected');

            var codart = $(this).closest('.col-md-4').attr('id');

            divPosition = document.getElementById(codart).style.top;
           
            productShowed = sessionStorage.setItem('numberProductsShowed', numberProductsShowed);
            productSelected = sessionStorage.setItem('productSelected', codart);
         });

        //SCROLL ALL'ELEMENTO DI DETTAGLIO VISITATO 
        if (sessionStorage.getItem('productSelected') != null) {
            console.log(sessionStorage.getItem('productSelected'));
            $('.articoli').empty();

            Load(0, sessionStorage.getItem('numberProductsShowed'));

            console.log(sessionStorage.getItem('numberProductsShowed'));
           
            scrollToId = sessionStorage.getItem('productSelected');

            positionDiv = $(scrollToId); // non lo trova perchè non esiste nel DOM
            console.log(positionDiv);
            if (positionDiv.length) {
                //$("html, body").animate({ scrollTop: ('#' + positionDiv).offset().top }, 1000);
                $("html, body").animate({ scrollTop: divPosition }, 1000);

            }
        }
        
        function Load(Skip, Take) {
           
            numberProductsShowed = Skip ;

            $('#divPostsLoader').html('<img src="Images/loading.gif" height="100" />');

            $.ajax({
                type: "POST",
                url: "...",
                data: "{ Skip:" + Skip + ", Take:" + Take + " }",
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function (data) {
                    if (!data.d.length) {
                        $('#divPostsLoader').html('<h1>Finished<h1/>');
                    }
                    else if (data != '') {
                        //accodo dati a div
                        
                        //$('.articoli').append($(data.d));
                        $(".articoli").html($(".articoli").html() + "<hr>" + data.d);
                    }
                    $('#divPostsLoader').empty();

                },
                error: function () {
                    alert('error');
                }
            }).done(function (response) {
                sessionStorage.removeItem('numberProductsShowed');
                sessionStorage.removeItem('productSelected');
                //numberProductsShowed = 0;
            });
        };


ringrazio in ogni caso
Modificato da jjchuck il 21 febbraio 2018 17.08 -
3.782 messaggi dal 28 gennaio 2003
Guarda, io farei così.
Con Firefox, ^a seleziono tutto, poi tasto destro sulla pagina e premo "visualizza sorgente selezione"

Poi copierei l'html generato in una pagina html con visual studio, e questo per formattarla.

Adesso mi cercherei gli elementi con problema. Qualche id scorretto o altro.

di più non so

Pietro

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.