2010-12-23 7 views
0

Ich habe den folgenden Code:Databound Kontrollen und Update

<asp:FormView ID="PhotoFormView" runat="server" DataKeyNames="PhotoID" DataSourceID="PhotoDataSource"> 
    <EmptyDataTemplate> 
     No photo here. 
    </EmptyDataTemplate> 
    <ItemTemplate> 
     <asp:Panel runat="server" Width='<%#PhotoController.FullPhotoSize.Width%>' Style="float: left;"> 
      <asp:UpdatePanel runat="server" UpdateMode="Conditional"> 
       <ContentTemplate> 
        <asp:Button ID="VoteButton" runat="server" OnClick="VotePhoto" /> 
        <asp:Literal ID="VoteCountLL" runat="server" Text='<%#Bind("VoteCount")%>' /> 
        likes <span style="float: right;"> 
         <asp:Button runat="server" Text="Previous" /> 
         <asp:Button runat="server" Text="Next" /> 
        </span> 
       </ContentTemplate> 
      </asp:UpdatePanel> 

Im VotePhoto Methode (in der Code-behind) durch die VoteButton Taste aufgerufen wird, ich versuche DataBind auf VoteCountLL zu nennen, aber ich erhalte eine InvalidOperationException mit Die Nachricht "Datenbindungsmethoden wie Eval(), XPath() und Bind() können nur im Zusammenhang mit einem datengebundenen Steuerelement verwendet werden.".

In Englisch, hier ist, was ich versuche zu tun: Ich habe ein Etikett mit der Anzahl der Male, die ein Foto gewählt wurde. Die Schaltfläche kann angeklickt werden, damit der aktuell angemeldete Benutzer für das Foto abstimmt, wodurch die Anzahl der Stimmen erhöht wird, was in der VotePhoto-Methode geschieht. Am Ende der VotePhoto-Methode versucht es, DataBind im VoteCountLL-Literal aufzurufen, um die Anzahl zu aktualisieren, und es verursacht die oben genannte Ausnahme. Wie kann ich dieses Problem lösen?

Antwort

0

Anstatt <% # Bind ("VoteCount")%> zu verwenden, kann das Setzen des VoteCountLL-Werts aus dem DataBound-Ereignis hilfreich sein.