2016-06-09 2 views
1

я думаю, что картина собирается объяснить мою проблему лучшеJQuery Ajax Отображение списка запросов в таблице

error

мне нужна эта ("Объект Appel d'Offre: [La Fourniture и др установки]")

будет отображаться только один раз.

JQuery Код:

$(document).on("click","#bt_search",function (e) { 
     $.ajax({ 
        url : '/Lots/Search', 
        type : 'POST', 
        dataType: 'json', 
        data : { RefAO : $("#RefAppelOffre").val() }, 
        success : function(list) { 
         if(list == "fail"){ 

          alert('error'); 

         } 
         else{ 

          $.each(list, function (i) { 

           $("#titreAppend").append("<h3 style='margin-top:55px'>Object Appel d'Offre : [ <u style='color:#f43030'><b> " + list[i].Objet + "</b></u> ] </h3>"); 
           $("#tab tbody").append("<tr>" + 
                  "<td>" + list[i].Ref_Lot + "</td>" + 
                  "<td>" + list[i].Titre + "</td>" + 
                  "<td>" + list[i].TotalLotTTC + "</td>" + 
                  "<td>" + list[i].NombreConcurrent + "</td>" + 
                  "<td>" + list[i].NombreArticle + "</td>" + 
                 "</tr>"); 
          }) 

         }//Fermeture Else 
        }//Fermeture Success 

       })//fermeture ajax {}    

}) 

Кодекс Asp.net Назад:

[HttpPost] 
    public JsonResult Search(string RefAO) 
    { 

     var list = GlobalVariables.ctx.GetDetailedListLots(RefAO).ToList<GetDetailedListLots_Result>(); 
     //var list = ctx.Bilan_Lot(RefAO).ToList<Bilan_Lot_Result>(); 
     if(list != null) 
     { 

      return Json(list, JsonRequestBehavior.AllowGet); 

     } 
     else 
     { 
      return Json("fail"); 
     } 

    } 

я знаю, что это abvious, что печать название утра будет добавляться каждый раз, может кто-нибудь дать мне решение для этого?

+0

вы можете предоставить полный код или некоторые демо, где мы можем попробовать что-то? – Codec

+0

Не можете ли вы переместить заголовок, добавляющий строку кода вне .each? – H77

+0

@Hosney Я пробовал это, но он все еще печатает это дважды, потому что список возвратил 2 строки –

ответ

0

Попробуйте

$("#bt_search").click(function() { 
    $.ajax({ 
     url : '/Lots/Search', 
     type : 'POST', 
     dataType: 'json', 
     data : { RefAO : $("#RefAppelOffre").val() }, 
     success : function(list) { 
      if(list == "fail") { 
       alert('error'); 
      } 
      else { 
       if (list.length) { 
        $("#titreAppend").append("<h3 style='margin-top:55px'>Object Appel d'Offre : [ <u style='color:#f43030'><b> " + list[0].Objet + "</b></u> ] </h3>"); 
       } 
       $.each(list, function (i) {     
        $("#tab tbody").append("<tr>" + 
               "<td>" + list[i].Ref_Lot + "</td>" + 
               "<td>" + list[i].Titre + "</td>" + 
               "<td>" + list[i].TotalLotTTC + "</td>" + 
               "<td>" + list[i].NombreConcurrent + "</td>" + 
               "<td>" + list[i].NombreArticle + "</td>" + 
              "</tr>"); 
       }) 

      }//Fermeture Else 
     }//Fermeture Success 

    })//fermeture ajax {}    
}) 
+0

да это сработало спасибо soo much sir –

+0

добро пожаловать! – H77

0

Это должно сработать для вас.

var hasTitle = false; 
    $.each(list, function (i) { 
     if(! hasTitle) { 
      $("#titreAppend").append("<h3 style='margin-top:55px'>Object Appel d'Offre : [ <u style='color:#f43030'><b> " + list[i].Objet + "</b></u> ] </h3>"); 
      hasTitle = true; // Ensure title is printed only once 
     } 

     $("#tab tbody").append("<tr>" + 
            "<td>" + list[i].Ref_Lot + "</td>" + 
            "<td>" + list[i].Titre + "</td>" + 
            "<td>" + list[i].TotalLotTTC + "</td>" + 
            "<td>" + list[i].NombreConcurrent + "</td>" + 
            "<td>" + list[i].NombreArticle + "</td>" + 
           "</tr>"); 
    }) 
+0

по-прежнему та же ошибка –

+0

Если вы все еще видите это дважды, скорее всего, ваш запрос ajax срабатывает дважды. Можете ли вы добавить 'console.log (« Запрос на обработку »)' внутри вашего обратного вызова 'success' и посмотреть, сколько раз он вызывается? – phreakv6

0

пытаются использовать

var titreAppend = $("#titreAppend"); 
      var tabtbody = $("#tab tbody"); 

      $.each(list, function (index, object) { 

       titreAppend.append("<h3 style='margin-top:55px'>Object Appel d'Offre : [ <u style='color:#f43030'><b> " + object.Objet + "</b></u> ] </h3>"); 
       tabtbody.append("<tr>" + 
              "<td>" + object.Ref_Lot + "</td>" + 
              "<td>" + object.Titre + "</td>" + 
              "<td>" + object.TotalLotTTC + "</td>" + 
              "<td>" + object.NombreConcurrent + "</td>" + 
              "<td>" + object.NombreArticle + "</td>" + 
             "</tr>"); 
      }); 
+0

все тот же результат! –

+0

использование возвращение Json (новый {list = list}, JsonRequestBehavior.AllowGet); и проверьте, что вы получаете в переменной списка jQuery –

Смежные вопросы