2009-11-13 5 views
1

J'ai une application développée dans asp.net qui définit innerhtml de div. Je crée une chaîne html pour montrer googlemap. Ça fonctionne bien. Mais quand je mets mon div dans le panneau de mise à jour. il ne montre pas googlemap dans div. Voici mon code de fichier ASPX:problème div innerHTML avec updatepanel



  </td> 
     </tr> 
     <tr> 
      <td colspan="4"> 
       <asp:UpdatePanel ID="UpdatePanel2" runat="server"> 
        <ContentTemplate> 
         <div id="map_canvas" runat="server" style="width: 100%; height: 1500px; margin-bottom: 2px; 
          text-align: center;"> 
          <asp:Panel ID="Panel1" runat="server"> 
           <%--Place holder to fill with javascript by server side code--%> 
           <asp:Literal ID="js" runat="server"></asp:Literal> 
           <%--Place for google to show your MAP--%> 
           <div id="Div1" style="width: 100%; height: 728px; margin-bottom: 2px;"> 
           </div> 
           <br /> 
          </asp:Panel> 
         </div> 
        </ContentTemplate> 
        <Triggers> 
         <asp:AsyncPostBackTrigger ControlID="btnShow" EventName="Click" /> 
        </Triggers> 
       </asp:UpdatePanel> 
      </td> 
     </tr> 

voici mon bouton événement click.

protected void btnShow_Click(object sender, EventArgs e) 
{ 
    // works fine without update panel.  
    map_canvas.InnerHtml = showMapWithPoints(); 
} 

Répondre

0

Quand vous faites:

map_canvas.InnerHtml = showMapWithPoints(); 

Vous écrasez tout, y compris tous vos contrôles côté serveur, dans ce div.

Est-ce que vous faites quelque chose qui nécessite que ces contrôles soient disponibles tels que les contrôles 'js' et 'div1'?