2016-06-14 11 views
0

Gegeben die folgende Seite (neuste Aktualisierung).asp.net ungültiges Postback für Schaltfläche onclick innerhalb Repeater Fußzeile

<%@ Page Title="" Language="C#" MasterPageFile="~/master/superuser.master" AutoEventWireup="true" CodeFile="default.aspx.cs" Inherits="permissions_default" %> 

<asp:Content ID="Content1" ContentPlaceHolderID="HeadContent" runat="Server"></asp:Content> 
<asp:Content ID="Content2" ContentPlaceHolderID="PageContent" runat="Server"> 
    <h1>Permissions Management</h1> 
<div class="row"> 
     <div class="span9"> 
     <form runat="server"> 
      <fieldset> 
       <legend>CRM User Permissions</legend> 
       <asp:Repeater ID="rptUserPermissions" runat="server" OnItemCommand="rptUserPermissions_ItemCommand"> 
        <HeaderTemplate> 
         <table class="table table-striped autowidth"> 
          <thead> 
           <tr> 
            <th>User</th> 
            <th>Program</th> 
            <th>Action</th> 
           </tr> 
          </thead> 
          <tbody> 
        </HeaderTemplate> 

        <ItemTemplate> 
         <tr> 
          <td><%# DataBinder.Eval(Container, "DataItem.user_name") %></td> 
          <td><%# DataBinder.Eval(Container, "DataItem.program_name") %></td> 
          <td> 
           <asp:Button ID="btnDelete" Text="Delete" runat="server" CommandName="cmd_Delete" CommandArgument="<%# DataBinder.Eval(Container, "DataItem.id") %>" /> 
          </td> 
         </tr> 
        </ItemTemplate> 

        <FooterTemplate> 
         <tr> 
          <td> 
           <asp:DropDownList ID="ddUser" runat="server" /> 
          </td> 
          <td> 
           <asp:DropDownList ID="ddProgram" runat="server" /> 
          </td> 
          <td> 
           <asp:Button ID="btnSubmit" Text="Add New" runat="server" CommandName="cmd_Submit"/> 
          </td> 
         </tr> 
         </tbody> 
        </table> 
        </FooterTemplate> 
       </asp:Repeater> 
      </fieldset> 
     </form> 
    </div> 
    <div class="span1">&nbsp;</div> 
    <div class="span4"></div> 
    </div> 
</asp:Content> 
<asp:Content ID="Content3" ContentPlaceHolderID="ScriptContent" runat="Server"> 
</asp:Content> 

Wie kann ich die Schaltfläche Onclick Veranstaltungen für btnSubmit und btnDelete im Repeater Fußzeile handhaben, ohne eine ungültige Postback oder Callback-Ausnahme zu werfen?

UPDATE: die databinder.evals auf dem löschen btn mit Befehl Argument Eingabe wirft nun eine Parse erorr Botschaft, die wie folgt lautet:

Parser Error Message: The server tag is not well formed. 

Antwort

1

Sie wollen tatsächlich die ItemCommand Ereignis verwenden, die von einem ausgelöst wird Drücken Sie die Objektvorlage. Das passiert im Kontext der Zeile, mit der Sie von dort aus arbeiten können.

Sie ein Beispiel hier sehen kann:

http://nazimakul.com/article/repeater-itemcommand-event-in-asp-net_1049

+0

was über den Absenden-Button, der in der Fußzeile Vorlage ist? das wird nicht als Item-Zeile betrachtet, oder? – Nebri

+0

Ich glaube, dass die Fußzeilenvorlage eine Schaltfläche sein kann, wie Sie sie haben. (Entschuldigung, ich habe diesen Teil verpasst). Hier ist eine Antwort, die es funktioniert zu zeigen scheint. http://stackoverflow.com/questions/6897141/handling-control-events-from-repeater-footer –

+0

Ich habe versucht, den Artikel in Ihrer Antwort und in der Antwort von der anderen stackoverflow Frage, die Sie verknüpft sind. Beide werfen immer noch ungültige Postback-Ausnahmen an meinem Ende. Aktualisiert meine Frage mit den neuesten Code-Snippets. – Nebri

Verwandte Themen