2010-08-01 9 views
5

Tengo una página con una lista que muestra algo así como las publicaciones. En cada publicación debe haber un "cuadro de tarifas" que funciona de manera similar al botón "Me gusta" en Facebook. El cuadro de índice es un Control de usuario, que tiene un panel de actualización dentro.¿Cómo hacer que UpdatePanel dentro de ListView funcione?

Si pongo el control con algunos valores aleatorios en la página funciona bien, pero cuando lo coloco dentro de ListView, donde debería ubicarse, no funcionará. Se está llamando al método, pero no sucede nada.

que simplifica el código un poco para que sea más fácil de entender:

La "caja de tarifa" control:

protected void OnRateClick(object sender, ImageClickEventArgs e) 
    { 
     Rate++; 
     RateAmountLiteral.Text = Rate.ToString(); 
     RateButton.Visible = false; 
     FeedbackLiteral.Visible = true; 

     rateButtonPanel.Update(); 
    } 

ascx:

<div class="rate_div"> 
    <asp:UpdatePanel ID="rateButtonPanel" runat="server" UpdateMode="Conditional"> 
     <ContentTemplate> 
      <fieldset> 
       Rate: 
       <asp:Literal ID="RateAmountLiteral" runat="server"></asp:Literal> 
       <asp:ImageButton ID="RateButton" runat="server" ImageUrl="icn_rate.png" 
        OnClick="OnRateClick" /> 
       <asp:Literal ID="FeedbackLiteral" runat="server" Visible="false">Thanks for rating!</asp:Literal> 
      </fieldset> 
     </ContentTemplate> 
    </asp:UpdatePanel> 
</div> 

aspx (con el control) :

     <asp:ListView ID="PostsView" runat="server" ItemPlaceholderID="itemPlaceHolder2" 
         <LayoutTemplate> 
          <div class="posts_div"> 
           <asp:PlaceHolder ID="itemPlaceHolder2" runat="server" /> 
          </div> 
         </LayoutTemplate> 
         <ItemTemplate> 
          <div class="post_div"> 
           <div class="post_body"> 
            <%# CurrentPost.Body %> 
           </div> 
           <UC:RatingBox id="RatingBox" runat="server" 
           PostID="<%# CurrentPost.ID %>" 
           Rate="<%# CurrentPost.Rate %>"/> 
           By: <a href="<%# CurrentPost.Author.LinkToProfile %>"> 
            <%# CurrentPost.Author.DisplayName %> 
           </a>&nbsp;|&nbsp; 
           <%# CurrentPost.LiteralTime %> 
          </div> 
         </ItemTemplate> 
        </asp:ListView> 

Mientras realizaba la depuración, noté que los controles en el método "OnRateClick" están vacíos y no contienen los valores correctos. Por favor aconséjame.

Además, si tiene algún comentario sobre la forma en que hice las cosas, no se sostenga.

Gracias

Respuesta

0

Hay un bajo número de cosas que usted puede no haber establecido, no se puede decir de sólo el fragmento de código que has dado. Pero asegúrese de hacer lo siguiente: -

1) Coloque un ScriptManager "" en la página.

Si está utilizando la página principal de la aplicación y su página web utiliza la página maestra, lugar gestor de secuencia de comandos en la página principal. O, como alternativa, también puede colocar el administrador de scripts en páginas web específicas de todos modos.

2) Agregue un Disparador para el botón RateButton en su panel de Actualización.

Cuestiones relacionadas