2014-09-09 5 views
0

Я пытаюсь обновить диалоговое окно jQuery, которое содержит информацию, поступающую из моей базы данных. Когда я изменяю контекст страницы, я нажимаю кнопку, которая открывает мой диалог, но всегда показывает мне первый контекст. Кто-нибудь знает, как обновить диалог?Как обновить диалоговое окно jQuery?

Вот мой код:

 function showDialog(id) { 
      $('#' + id).dialog("open"); 
     } 

     function closeDialog(id) { 
      $('#' + id).dialog("close"); 
     } 

     $('#DivDialogCibles').dialog({ 
      autoOpen: false, 
      draggable: true, 
      width: 1200, 
      height: 600, 
      cache: false, 
      title: "Cibles annuelles", 
      open: function() { 
       jQuery('.ui-widget-overlay').bind('click', function() { 
        jQuery('#dialog').dialog('close'); 
       }) 
      }, 
      close: function() {     
       closeDialog('DivDialogCibles'); 
       $('#DivDialogCibles').html(""); 
      } 
     }); 

     $('#btCiblesAnnuelles').bind('click', function() { 
      showDialog('DivDialogCibles'); 
     }); 

и это код моего DIV:

<div id="DivDialogCiblesAnnuelles" style="display: none"></div> 
    <div id="DivDialogCibles" style="display: none"> 
    <% using (Ajax.BeginForm("EditCible", "Enseigne", new AjaxOptions { HttpMethod = "POST", OnSuccess = "InitListGeneric", UpdateTargetId = "DivDialogCiblesAnnuelles" }, new { id = "formEditCibles" })) 
    {%> 
    <%: Html.ValidationSummary(true) %> 
     <table class="tableau"> 
      <thead > 
       <tr> 
        <th></th> 
        <th colspan="2">Q1</th> 
        <th colspan="2">Q2</th> 
        <th colspan="2">Q3</th> 
        <th colspan="2">Q4</th> 
       </tr> 
       <tr> 
        <th style="width:auto; resize:horizontal"><%: GetLocalResourceObject("LabelSecteur").ToString()%></th> 
        <% foreach (var periode in Model.PeriodesCible) 
        { %> 
         <th>I/H</th> 
         <th>% Prod</th> 
        <%} %> 
       </tr> 
      </thead> 
      <tbody> 
       <%:Html.Hidden("IdEnseigneDialog", Model.Enseigne.IdEnseigne) %> 
       <%:Html.DropDownListFor(model => Model.SegmentEnseigne.IdSegment, Model.ListeSegment, new { style = "display: none;"})%> 
       <%:Html.Hidden("IDTFilialeProprietaire", Model.Enseigne.IDTFiliale)%> 
       <% int cpt = 0; 
       var listESS = Model.Enseigne.ESS_Enseigne_Secteur.Where(tmp=>tmp.SEC_Secteur.IDTFiliale==Model.IdFiliale && (tmp.SEC_Secteur.Suppression == false || tmp.SEC_Secteur.Suppression == null)).OrderBy(ob=>ob.SEC_Secteur.LibSecteur); 
       var ListEssPeriodeCourante = listESS.Where(tmp => tmp.IdPeriodeCible == Model.Enseigne.RecupererPeriodeCourante()).OrderBy(ob => ob.SEC_Secteur.LibSecteur); 
       foreach (var ess in ListEssPeriodeCourante) 
       {%> 
        <tr> 
         <td> 
          <%:Html.DisplayFor(modelsec=> ess.SEC_Secteur.LibSecteur) %> 
         </td> 
         <% var ListEnseigneSecteur = listESS.Where(tmp => tmp.IdEnseigne == ess.IdEnseigne && tmp.IdSecteur == ess.IdSecteur).OrderBy(ob => ob.IdPeriodeCible); %> 
         <% foreach (var ensSec in ListEnseigneSecteur) 
         {%> 
          <%:Html.Hidden("ess.IdEnseigneSecteur_"+cpt.ToString()+"_"+ensSec.IdPeriodeCible.ToString(), ensSec.IdEnseigneSecteur) %> 
          <%:Html.Hidden("ess.IdSecteur_"+cpt.ToString()+"_"+ensSec.IdPeriodeCible.ToString(), ensSec.IdSecteur) %> 
          <%:Html.Hidden("ess.IdEnseigne_"+cpt.ToString()+"_"+ensSec.IdPeriodeCible.ToString(), ensSec.IdEnseigne) %> 
          <%:Html.Hidden("ess.PeriodeCible_"+cpt.ToString()+"_"+ensSec.IdPeriodeCible.ToString(), ensSec.IdPeriodeCible)%> 
          <td> 
           <%if (ensSec.IdPeriodeCible == Model.Enseigne.RecupererPeriodeCourante()) 
            {%> 
            <%:Html.TextBox("ess.CibleItH_"+cpt.ToString()+"_"+ensSec.IdPeriodeCible.ToString(), ensSec.CibleItH, new { @disabled = "disabled" }) %> 
           <%} %> 
           <% else 
            { %> 
            <%:Html.TextBox("ess.CibleItH_"+cpt.ToString()+"_"+ensSec.IdPeriodeCible.ToString(), ensSec.CibleItH) %> 
           <%} %> 
           <%:Html.ValidationMessage("CibleSecteurDialog", GetLocalResourceObject("LabelErrorCibleSecteur").ToString())%>           
          </td> 
          <td> 
           <%if (ensSec.IdPeriodeCible == Model.Enseigne.RecupererPeriodeCourante()) 
            {%> 
            <%:Html.TextBox("ess.CibleProd_"+cpt.ToString()+"_"+ensSec.IdPeriodeCible.ToString(), ensSec.CibleProd, new { @disabled = "disabled" }) %> 
           <%} %> 
           <% else 
            { %> 
            <%:Html.TextBox("ess.CibleProd_"+cpt.ToString()+"_"+ensSec.IdPeriodeCible.ToString(), ensSec.CibleProd) %> 
           <%} %> 
           <%:Html.ValidationMessage("CibleSecteurProdDialog", GetLocalResourceObject("LabelErrorCibleSecteurProd").ToString())%>           
          </td> 
         <% } %> 
        </tr> 
        <% cpt++; 
       } %> 
       <tr>       
        <td style="border-top:1px solid #000"><label><%:GetLocalResourceObject("LabelCibleComplet").ToString()%></label></td> 
        <% foreach(var periode in Model.PeriodesCible) { 
         var cible = Model.EmptyCibleComplet; 
         if (Model.FilialeEnseigne.IdFilialeEnseigne != 0 && Model.FilialeEnseigne.CBC_CibleComplet.Count() != 0) 
         { 
          cible = Model.FilialeEnseigne.CBC_CibleComplet.SingleOrDefault(cb => cb.IdFilialeEnseigne == Model.FilialeEnseigne.IdFilialeEnseigne && cb.IdPeriodeCible == periode.IdPeriodeCible); 
         } 
         else 
         { 
          cible = Model.EmptyCibleComplet; 
         } 
         %> 
         <%:Html.Hidden("Cible.IdPeriodeCible_"+periode.IdPeriodeCible.ToString(), cible.IdPeriodeCible) %> 
         <%:Html.Hidden("Cible.IdFilialeEnseigne_"+periode.IdPeriodeCible.ToString(), cible.IdFilialeEnseigne) %> 
         <%:Html.Hidden("Cible.IdCible_"+periode.IdPeriodeCible.ToString(), cible.IdCible) %> 
         <td style="border-top:1px solid #000"> 
          <% if (cible.IdPeriodeCible == Model.Enseigne.RecupererPeriodeCourante()) 
          { %> 
           <%:Html.TextBox("Cible.CibleIthCmplet_"+periode.IdPeriodeCible.ToString(), cible.CibleItHComplet, new { @disabled = "disabled" })%> 
          <%} else { %> 
           <%:Html.TextBox("Cible.CibleIthCmplet_"+periode.IdPeriodeCible.ToString(), cible.CibleItHComplet)%> 
          <%} %>         
          <%:Html.ValidationMessage("CibleITHDialog", GetLocalResourceObject("LabelErrorCibleITH").ToString())%>           
         </td> 
         <td style="border-top:1px solid #000"> 
          <% if (cible.IdPeriodeCible == Model.Enseigne.RecupererPeriodeCourante()) 
          { %> 
           <%:Html.TextBox("Cible.CibleProdComplet_"+periode.IdPeriodeCible.ToString(), cible.CibleProdComplet, new { @disabled = "disabled" })%> 
          <%} else { %> 
           <%:Html.TextBox("Cible.CibleProdComplet_"+periode.IdPeriodeCible.ToString(), cible.CibleProdComplet)%> 
          <%} %> 
          <%:Html.ValidationMessage("CibleProdDialog", GetLocalResourceObject("LabelErrorProd").ToString())%>           
         </td> 
        <%} %> 
       </tr> 
      </tbody> 
     </table> 
     <!-- Boutons --> 
     <br />   

     <% if (Model.Enseigne.droitCreationModif == true) {%> 
      <div class="divcenter"> 
       <input type="submit" name="Save" value="Save" id="btSaveCible" class='ui-button'/> 
       <input type="button" name="Cancel" value="Cancel" id="btCancel" class='ui-button'/> 
      </div> 
     <%} %> 
    <% } %> 
    </div> 
+0

Вам нужно указать код, который заполняет ваше диалоговое окно, чтобы люди могли помочь (как пытается ответить ниже). Кроме того, я считаю, что кеш: false, 'недействительный вариант – blgt

+0

благодарит вас за ответ. Я добавил код своего диалога в свой пост – fatys

+0

К моменту оценки javascript все эти асинхронные вызовы, заполняющие DOM, уже были загружены, поэтому ваш скрипт будет работать только с HTML. Вам нужно либо хранить его где-то, чтобы добавить его динамически, либо (лучше) упростить серверную сторону – blgt

ответ

0

Я думаю, что вы хотите, чтобы повторно загрузить содержимое диалогового окна:

$('#DivDialogCibles').load('http://location.of.contents.of.div'); 
+0

Благодарим вас за ответ, но он показывает мне ошибку «Conсекция ошибок» – fatys

+0

Просто чтобы проверить , вы обновили http: //location.of.contents.of.div, чтобы он был адресом содержимого div на вашем сервере? – Stu

+0

Да, я делаю это: $ ('# DivDialogCibles'). Load ('~/Views/Enseigne/Edit.ascx'); – fatys

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