Carregar dinamicamente do banco e montar um treeview no cshtml não estou conseguindo

11/09/2014

0

é o seguinte. Não estou conseguindo os resultados satisfatórios na montagem de uma arvore usando checkbox como em um treeview. Bem, quando coloco os dados fixos funciona muito bem. Mas quando trago os dados do BD, aí que complica, ou seja, não funciona. A lógica é a seguinte para entenderem. Tenho alguns dados chaves, vindos do bando, que são: MOTIVO, UNIDADE_NEGÓCIO, FAMILIA e claro o produto(tudo medicamentos). Existe uma LINQ que me traz essas informações para eu montar a árvore. Essa LINQ, por enquanto me traz tudo e serializo e envio para uma função JQUERY. Nessa função, eu faço um EACH no resultado da que vem da controller(LINQ), monto os nós e decarrego o HTML então na página. Na função, faço uns IF's para que não se repita os nomes nos nós. Não dá para fazer um distinct, pois tenho várias vezes o mesmo MOTIVO mas para ID diferentes e assim para os demais, por isso os IF's na jquery. O que está acontecendo? Não monta os checkbox's, traz as informações, mas não monta os checkbox e por isso não cria a barra de scroll lateralmente.

Meu jquery:

function MontaArvore() {

    var str = "";
    var motivo = "";
    var unidade_neg = "";
    var familia = "";

    $.ajax({

        url: '/Acao/ArvoreAcao',
        datatype: 'json',
        contentType: 'application/json; charset=utf-8',
        type: 'POST',
        data: JSON.stringify({}),
        success: function (data) {

            $(data.monta_arvore).each(function () {

                if (motivo != this.Motivo1) {
                    str += '<ul>';
                    str += '<li item-checked="false" item-expanded="false">';
                    str += this.Motivo1;
                }

                if (unidade_neg != this.Unidade_Negocio) {
                    str += '<ul>';
                    str += '<li item-expanded="false">';
                    str += this.Unidade_Negocio;
                }

                if (familia != this.Familia) {
                str += '<ul>';
                str += '<li item-expanded="false">';
                    str += this.Familia;
                }
                str += '<ul>';
                    str += '<li>' + this.Descricao + '</li>';
                str += '</ul>';

                str += '</li>';//Familia
                str += '</ul>';//Familia

                str += '</li>';//Unidade de negocio
                str += '</ul>';//Unidade de negocio

                motivo = this.Motivo1;
                unidade_neg = this.Unidade_Negocio;
                familia = this.Familia;

                str += '</li>';//li item-checked após o ul principal
                str += '</ul>';

            });

            $('#jqxTree').html(str);
            str = "";
        },
        error: function (error) {
        }
    })
}


Meu cshtml(Apenas onde é montado a árvore). Na parte descomentada, se eu descomentar funciona como eu quero, ou seja, com dados fixos funcionam. Já com dados dinâmicos, vindos do BD é que dá o pau. Eu comento para inserir o real. Insiro na div "jqxTree".

<div id='jqxWidget'>
<div style='float: left; width:auto;' id="arvore">
    <div id='jqxTree' style=' float: left; margin-'>
        @*<ul>
            <li item-checked='false' item-expanded='false'>
                Produto
                <ul>
                    <li item-expanded='true'>
                        MIP
                        <ul>
                            <li item-expanded='true'>
                                Família: ACCUVIT
                                <ul>
                                    <li>ACCUVIT COMREV FRX30</li>
                                </ul>
                            </li>
                            <li item-expanded='true'>
                                Família: FLOGORAL
                                <ul>
                                    <li>FLOGORAL SPRAY CEREJA CTX30ML</li>
                                    <li>FLOGORAL SPRAY MENTA CTX30ML</li>
                                    <li>FLOGORAL CREM DENTAL CTX70G</li>
                                </ul>
                            </li>
                        </ul>
                    </li>
                </ul>
           </li>
        </ul>*@

    </div>

    <div style='margin- float: left;'>
        <div style='margin-'>
            <input id='jqxCheckBox' type="hidden">
        </div>
    </div>

  </div>
</div>
Pjava

Pjava

Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar