2016-06-13 12 views
2

Ich habe versucht zu verstehen, was passiert und ich habe das Internet vergeblich gesucht.Wie auf eine Schaltfläche in einem geschachtelten Repeater in ASP.net zugreifen?

Wie greife ich auf meine Schaltflächen innerhalb eines verschachtelten Repeaters zu? Ich habe so viele Stunden damit verbracht, zu forschen/experimentieren und ich verstehe nicht, was vor sich geht.

HTML-Code:

<asp:Repeater runat="server" ID="repQuestionTopics"> 
    .... 
    <asp:Repeater ID="repQA" runat="server"> 
     .... 
     <strong>Was this article helpful?</strong>&nbsp; 
     <button class="button tiny secondary radius" runat="server" 
       CommandName="voteYes" id="btnVoteHelpfulYes">Yes</button> 
     <button class="button tiny secondary radius" runat="server" 
       CommandName="voteNo" ID="btnVoteHelpfulNo">No</button> 
    </asp:Repeater> 
</asp:Repeater> 

-Code-Behind:

//Handles repQuestionTopics.ItemCommand 
Public Sub repTopics_ItemCommand(Sender As Object, e As RepeaterCommandEventArgs) 
    If e.CommandName = "voteYes" Then 
     .... 
    End If 
End Sub 

Wie erhalte ich Zugriff auf repQA? Aus irgendeinem Grund lässt mich mein Code-Behind nicht die Funktion schreiben Handles repQA.ItemCommand - warum? Ich habe versucht, die Funktion auf der asp Seite direkt Eingabe durch so etwas wie (Hinzufügen OnClick) mit:

<button class="button tiny secondary radius" runat="server" OnClick="repTopics_ItemCommand" 
     CommandName="voteYes" id="btnVoteHelpfulYes">Yes</button> 

Wenn die Taste voteYes geklickt Ich möchte in die Datenbank gehen zu können und um den Zähler zu aktualisieren, damit ich kann verfolgen, wie viele Stimmen und Stimmen für diese Antwort auf die Frage gibt.

Egal, welche Änderung ich implementiere, um zu versuchen, es zum Laufen zu bringen, wenn ich auf den Knopf klicke, erfrischt die Seite und das ist es - sonst nichts.

Antwort

0

HTML-Markup: Sie haben OnItemCommand Ereignis auf Ihre innere Repeater repAQ hinzuzufügen:

<asp:Repeater ID="repQA" runat="server" OnItemCommand="repQA_ItemCommand"> 

-Code-Behind:

VB.Net:

Public Sub repQA_ItemCommand(Sender As Object, e As RepeaterCommandEventArgs) 
    // check for right name of command 
    If e.CommandName = "voteYes" Then 
     .... 
    End If 
End Sub 

ASP.NET:

protected void repQA_ItemCommand(object source, RepeaterCommandEventArgs e) 
{ 
    // check for right name of command 
    if(e.CommandName == "voteYes") 
    { 
     .... 
    } 
}